2016-10-17 3 views
1

Ich habe eine Methode, die ein Objekt zurückgibt. In meiner Elternfunktion habe ich eine Liste von IDs.Methode in C# parallel ausführen und Ergebnisse vergleichen

Ich möchte die Methode für jede ID, die ich habe, aufrufen und dann die Objekte zu einer Liste hinzufügen. Im Moment habe ich eine Schleife geschrieben, die die Methode aufruft, die jede ID weitergibt und auf das zurückgegebene Objekt wartet und dann zur nächsten ID geht.

Kann dies parallel erfolgen? Jede Hilfe hier wäre sehr hilfreich.

+3

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

Antwort

0

So etwas wie dieses vielleicht:

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

Ich denke Aufgabe parallel Bibliotheken wird Ihnen helfen,

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 
Verwandte Themen