Pemprosesan Selari dengan Parallel.ForEach
Pengaturcaraan selari meningkatkan prestasi aplikasi dengan memanfaatkan berbilang teras pemproses. Parallel.ForEach ialah binaan berkuasa yang memudahkan pemprosesan selari dalam aplikasi .NET.
Foreach Loop vs. Parallel.ForEach
Gelung foreach tradisional melakukan lelaran secara berurutan pada benang tunggal. Parallel.ForEach, sebaliknya, mengagihkan beban kerja merentas berbilang urutan, membolehkan pelaksanaan serentak lelaran.
Ciri-ciri Gelung Foreach:
Ciri-ciri Parallel.ForEach:
Menukar kepada Parallel.ForEach
Untuk menukar coretan kod yang diberikan kepada Parallel.ForEach:
Parallel.ForEach(list_lines, line => { // My Stuff });
Contoh
Contoh berikut menunjukkan perbezaan antara gelung foreach dan 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"); } } }
Output
Output akan menunjukkan bahawa Parallel.ForEach melaksanakan lelaran secara selari, mengurangkan masa pemprosesan keseluruhan berbanding gelung foreach tradisional.
Atas ialah kandungan terperinci Bagaimanakah Parallel.ForEach Meningkatkan Prestasi Berbanding dengan Gelung Foreach Tradisional dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!