Parallele Verarbeitung mit Parallel.ForEach
Parallele Programmierung verbessert die Anwendungsleistung durch die Nutzung mehrerer Prozessorkerne. Parallel.ForEach ist ein leistungsstarkes Konstrukt, das die parallele Verarbeitung in .NET-Anwendungen vereinfacht.
Foreach-Schleife vs. Parallel.ForEach
Die traditionelle foreach-Schleife führt Iterationen nacheinander auf einem aus einzelner Thread. Parallel.ForEach hingegen verteilt die Arbeitslast auf mehrere Threads und ermöglicht so die gleichzeitige Ausführung von Iterationen.
Eigenschaften von Foreach-Schleifen:
Eigenschaften von Parallel.ForEach:
Konvertieren in Parallel.ForEach
So konvertieren Sie das angegebene Code-Snippet in Parallel.ForEach:
Parallel.ForEach(list_lines, line => { // My Stuff });
Beispiel
Das folgende Beispiel zeigt den Unterschied zwischen einer foreach-Schleife und Parallel.ForEach:
using System; using System.Diagnostics; using System.Collections.Generic; using System.Threading.Tasks; namespace ParallelForEachExample { class Program { static void Main() { var lines = File.ReadAllLines("proxylist.txt"); var list_lines = new List<string>(lines); Console.WriteLine("Traditional foreach loop"); var watch = Stopwatch.StartNew(); foreach (var line in list_lines) { Console.WriteLine(line); Thread.Sleep(10); } watch.Stop(); Console.WriteLine($"foreach loop execution time: {watch.ElapsedMilliseconds} ms"); Console.WriteLine("Using Parallel.ForEach"); watch = Stopwatch.StartNew(); Parallel.ForEach(list_lines, line => { Console.WriteLine(line); Thread.Sleep(10); }); watch.Stop(); Console.WriteLine($"Parallel.ForEach() execution time: {watch.ElapsedMilliseconds} ms"); } } }
Ausgabe
Die Ausgabe zeigt, dass Parallel.ForEach die Iterationen parallel ausführt, wodurch die Gesamtverarbeitungszeit im Vergleich zum herkömmlichen foreach verkürzt wird Schleife.
Das obige ist der detaillierte Inhalt vonWie verbessert Parallel.ForEach die Leistung im Vergleich zu einer herkömmlichen Foreach-Schleife in .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!