#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