Sind Parallel.Invoke und Parallel.ForEach im Wesentlichen das gleiche?

Und mit "der gleichen Sache" meine ich, erledigen diese beiden Operationen im Grunde die gleiche Arbeit und es läuft nur darauf hinaus, mit welchen Operationen Sie bequemer arbeiten können, je nachdem, woran Sie arbeiten müssen? (d. h. eine Liste von Delegierten oder eine Liste von Dingen, über die iteriert werden soll)? Ich habe MSDN, StackOverflow und verschiedene zufällige Artikel durchsucht, aber ich habe noch keine klare Antwort darauf gefunden.

BEARBEITEN: Ich hätte klarer sein sollen; Ich frage, ob die beiden Methoden dasselbe tun, denn wenn sie es nicht tun, würde ich gerne verstehen, welche effizienter wäre.

Beispiel: Ich habe eine Liste mit 500 Schlüsselwerten. Derzeit verwende ich eine foreach-Schleife, die die Liste (seriell) durchläuft und für jedes Element Arbeit leistet. Wenn ich mehrere Kerne nutzen möchte, sollte ich stattdessen einfach Parallel.ForEach verwenden? Nehmen wir aus Gründen der Argumentation an, ich hätte eine Gruppe von 500 Delegierten für diese 500 Aufgaben. Wäre der Nettoeffekt ein anderer Aufruf von Parallel.Invoke und eine Liste von 500 Delegierten?

Vielen Dank im Voraus!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage