Parallel.ForEach를 사용하여 처리 병렬화
.NET 프로그래밍에서 기존 foreach 루프는 다음을 사용하여 한 번에 한 요소씩 순차적으로 반복을 수행합니다. 단일 스레드. 이 접근 방식은 시간이 오래 걸리거나 집중적인 작업과 관련된 작업의 처리 속도를 저하시킬 수 있습니다.
Parallel.ForEach 소개
Parallel.ForEach 메서드를 사용하면 여러 스레드를 활용하여 병렬 처리가 가능합니다. . 이 메서드는 반복을 동시에 실행하여 사용 가능한 스레드 간에 처리 작업을 나눕니다. 워크로드를 분산함으로써 Parallel.ForEach는 특히 느리거나 데이터 집약적인 프로세스의 실행 시간을 크게 향상시킬 수 있습니다.
그러나 Parallel.ForEach가 항상 더 빠르지는 않을 수 있다는 점에 유의하는 것이 중요합니다. 짧거나 빠른 프로세스의 경우 스레드 생성 및 관리와 관련된 오버헤드가 성능 이점보다 클 수 있습니다.
Parallel.ForEach로 변환의 예
다음 코드를 사용하여 고려하세요. foreach 루프:
string[] lines = File.ReadAllLines(txtProxyListPath.Text); List<string> list_lines = new List<string>(lines); foreach (string line in list_lines) { // Perform operations on each line }
다음을 사용하여 이 코드를 다시 작성하려면 Parallel.ForEach:
Parallel.ForEach(list_lines, line => { // Perform operations on each line });
이 예에서 Parallel.ForEach 메서드는 list_lines 컬렉션을 입력으로 사용하고 각 줄에 대해 새 스레드를 만들어 지정된 작업을 병렬로 실행합니다.
Foreach 루프와 Parallel.ForEach의 주요 차이점
Feature | Foreach Loop | Parallel.ForEach |
---|---|---|
Iteration Style | Sequential | Parallel |
Thread Usage | Single Thread | Multiple Threads |
Framework Availability | All .NET frameworks | .NET 4.0 and newer |
Overhead | Low for quick processes | Higher for quick processes due to thread creation and management |
Performance | Faster for short and quick processes | Faster for lengthy and data-intensive processes |
위 내용은 .NET에서 Foreach 루프 대신 Parallel.ForEach를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!