Ich versuche, Multi-Threading zu verwenden. Ich möchte eine Liste von Task
.there zwei Wahl für mich laufen, ich schreibe zwei Codes wie folgt:Verwenden Sie Parallel.ForEach oder füllen Sie die Liste <Task> von foreach
List<Task> taskList=new List<Task>();
foreach (var item in itemList)
{
taskList.Add(Task.Factory.StartNew(()=> DoTasks(item,new Random().Next(15,40))));
}
Task.WaitAll(taskList.ToArray());
Console.WriteLine("All Tasks Done!");
Und:
Parallel.ForEach(itemList, item => DoTasks(item, new Random().Next(15, 40)));
Console.WriteLine("All Tasks Done!");
Meine Fragen:
Was ist besser in der Leistung ?
Hat Parallel.ForEach
eine ThreadPool
für die Verwaltung von geöffneten Aufgaben?
Gibt es einen Weg zu diesem besser?
Dies hängt ganz davon ab, was die Aufgaben tun, es gibt viele Anwendungen, wo die parallele Ausführung für jeden einfach nicht angemessen ist. Bitte geben Sie ein wenig mehr Informationen darüber, was Sie erreichen möchten, um die beste Antwort zu erhalten. – Kodaloid
@Dmitry das ist nur Beispielcode aber ich bearbeite Frage. –
[Rennen Sie Ihre Pferde] (https://ericlippert.com/2012/12/17/performance-rant/) –