2016-10-17 2 views
1

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

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

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

+3

Как Parallel.ForEach() (MSDN - https://msdn.microsoft.com /de-de/library/system.threading.tasks.parallel.foreach(v=vs.110).aspx)? – Radinator

ответ

0

Что-то вроде этого, может быть:

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. 
    }); 
0

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

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