Ich bin gespannt auf die Leistungsmerkmale von Parallel.ForEach. Ist es angesichts eines gültigen Konstrukts innerhalb einer Parallel.ForEach-Schleife immer vorzuziehen, Parallel.ForEach über eine foreach-Schleife zu verwenden? Ich wundere mich speziell über den Overhead des Aufrufs der Parallel Tasks-Bibliothek in kleinen Sets oder anderen Edge-Fällen, wo eine foreach-Schleife schneller sein könnte. Ich weiß, dass die Bibliothek sehr schlau ist, wann/wie man Threads spawnt ... Gibt es Fälle, wo es besser ist, Code in einer foreach-Schleife zu belassen, oder ist der Overhead für den Aufruf von Parallel Tasks generell vernachlässigbar, also wenn du kannst, solltest du Verwenden Sie Parallel.ForEach?Was sind die Richtlinien für Parallel.ForEach vs. foreach?
Diese Frage ist ähnlich und bietet einen guten funktionalen Unterschied Informationen, aber spricht nicht wirklich zur Leistung. Beachten Sie, dass ich ignoriere Kompatibilität zu .NET < 4 als Grund für die mit einer foreach bleiben:
C#: Any benefit of List<T>.ForEach(...) over plain foreach loop?
Sie könnten einige Antworten hier finden http://www.microsoft.com/downloads/details.aspx?familyid=C3EA8FB5-650D-434B-A216-7E54C53965D1&displaylang=en –