Ich bin etwas verwirrt Parallel.ForEach
.
Was ist Parallel.ForEach
und was macht es genau?
Bitte verweisen Sie nicht auf einen MSDN-Link.
Hier ist ein einfaches Beispiel:
string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);
foreach (string line in list_lines)
{
//My Stuff
}
Wie kann ich dieses Beispiel umschreiben Parallel.ForEach
?
c#
multithreading
.net-4.0
parallel.foreach
SilverLight
quelle
quelle
Parallel
Klasse und der Verwendung von PLINQ geht.foreach
. Der Unterschied besteht darin, dass die parallele Version viele "Aktionen" gleichzeitig ausführen kann. In den meisten Fällen (abhängig davon, auf welchem Computer der Code ausgeführt wird, wie beschäftigt er ist und andere Dinge) ist er schneller, und das ist der wichtigste Vorteil. Beachten Sie, dass Sie bei paralleler Ausführung nicht wissen können, in welcher Reihenfolge die Artikel verarbeitet werden. Mit einer normalen (seriellen)foreach
ist garantiert, dasslines[0]
dann zuerstlines[1]
kommt und so weiter.Antworten:
quelle
List<T>
;)Foreach-Schleife:
Parallel.ForEach:
Das folgende Beispiel zeigt deutlich den Unterschied zwischen der herkömmlichen foreach-Schleife und
Beispiel Parallel.ForEach ()
Ausgabe
Verwenden des Beispiels Parallel.ForEach
quelle
Dadurch werden die Zeilen innerhalb der Schleife parallel analysiert. Wenn Sie eine detailliertere, weniger "referenzorientierte" Einführung in die Parallel-Klasse wünschen, habe ich eine Reihe über die TPL geschrieben, die einen Abschnitt über Parallel.ForEach enthält .
quelle
Verwenden Sie für große Dateien den folgenden Code (Sie sind weniger speicherhungrig)
quelle
Diese Zeilen haben bei mir funktioniert.
quelle