c# - Wann sollte eine Parallel.ForEach-Schleife anstelle einer regulären foreach verwendet werden?




2 Answers

string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);
Parallel.ForEach(list_lines, line =>
{
    //Your stuff
});

Ich bin etwas verwirrt über Parallel.ForEach .
Was ist Parallel.ForEach und was genau macht es?
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 mit Parallel.ForEach umschreiben?




string[] lines = File.ReadAllLines(txtProxyListPath.Text);

// No need for the list
// List<string> list_lines = new List<string>(lines); 

Parallel.ForEach(lines, line =>
{
    //My Stuff
});

Dies führt dazu, dass die Zeilen innerhalb der Schleife parallel analysiert werden. Wenn Sie eine detailliertere, weniger "referenzorientierte" Einführung in die Parallel-Klasse wünschen, schrieb ich eine Serie über die TPL, die einen Abschnitt über Parallel.ForEach enthält .




Related

c# multithreading .net-4.0 parallel.foreach