Запустите метод параллельно в C # и сопоставьте результаты

#c# #task-parallel-library

#c# #task-parallel-library

Вопрос:

У меня есть метод, который возвращает объект. В моей родительской функции у меня есть список идентификаторов.

Я хотел бы вызвать метод для каждого имеющегося у меня идентификатора, а затем добавить объекты в список. Прямо сейчас я написал цикл, который вызывает метод, передающий каждый идентификатор, и ожидает возвращенного объекта, а затем переходит к следующему идентификатору.

Можно ли это сделать параллельно? Любая помощь здесь была бы очень полезной.

Комментарии:

1. Как параллельный. ForEach() (MSDN — msdn.microsoft.com/de-de/library /… )?

Ответ №1:

Возможно, что-то вроде этого:

   List<int> ids = new List<int>();
  List<object> result = new List<object>();
  Parallel.ForEach(ids, (id, state, index) => {
    result.Add(new { Id = id }); // You class instance here.
  });
 

Ответ №2:

Я думаю, что библиотеки параллельных задач помогут вам

 Task[] tasks = new Task[2];   
tasks[0] = Task.Factory.StartNew(() => YourFunction());
tasks[1] = Task.Factory.StartNew(() => YourFunction());
Task.WaitAll(tasks);// here it will wait untill all the functions get completed