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에 비해 전체 처리 시간을 줄이는 것을 보여줍니다. 루프.
위 내용은 Parallel.ForEach는 .NET의 기존 Foreach 루프와 비교하여 어떻게 성능을 향상합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!