使用 Parallel.ForEach 进行并行处理
并行编程通过利用多个处理器核心来增强应用程序性能。 Parallel.ForEach 是一个强大的构造,可简化 .NET 应用程序中的并行处理。
Foreach 循环与 Parallel.ForEach
传统的 foreach 循环在单线程。另一方面,Parallel.ForEach 将工作负载分配到多个线程,从而能够同时执行迭代。
Foreach 循环的特点:
Parallel.ForEach 的特性:
转换为Parallel.ForEach
将给定的代码片段转换为Parallel.ForEach:
Parallel.ForEach(list_lines, line => { // My Stuff });
示例
以下示例演示了 foreach 循环和 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"); } } }
输出
输出将证明 Parallel.ForEach 并行执行迭代,与传统的 foreach 循环相比,减少了总体处理时间。
以上是与 .NET 中的传统 Foreach 循环相比,Parallel.ForEach 如何提高性能?的详细内容。更多信息请关注PHP中文网其他相关文章!