> 백엔드 개발 > C++ > C#에서 동시 작업을 제한하는 방법은 무엇입니까?

C#에서 동시 작업을 제한하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-29 04:08:10
원래의
418명이 탐색했습니다.

How to Limit Concurrent Tasks in C#?

C#에서 동시 작업 제한

멀티 스레드 및 비동기 프로그래밍에서 병렬 작업 수를 제어하면 성능을 향상하고 안정성을 유지할 수 있습니다. 이 질문은 C#에서 최대 동시 작업 수를 제한하는 방법을 탐구합니다.

동시성 제한

제공된 코드 블록은 각 입력 메시지에 대한 새 작업 생성을 예시합니다. . 이 접근 방식은 메시지 수가 많은 경우 과도한 리소스 사용으로 이어질 수 있습니다. 동시성을 제한하려면 MaxDegreeOfParallelism과 함께 Parallel.ForEach를 활용하는 것이 좋습니다.

Parallel.ForEach(messages, new ParallelOptions { MaxDegreeOfParallelism = 10},
msg =>
{
     // logic
     Process(msg);
});
로그인 후 복사

MaxDegreeOfParallelism을 10으로 지정하면 최대 10개의 메시지가 동시에 처리되어 리소스 부담이 줄어듭니다.

유지 관리 순서

그러나 이 접근 방식은 원본 컬렉션과 동일한 순서로 메시지 처리를 보장하지 않습니다. 순서를 보장하려면 Parallel LINQ 라이브러리의 SequentialQuery를 사용하세요.

var processedMessages = messages.AsParallel()
    .AsOrdered()  // Preserves order
    .Select(msg => Process(msg))
    .ToList(); // Forces execution
로그인 후 복사

이렇게 하면 효율성을 위해 병렬 처리를 활용하는 동시에 메시지가 입력 컬렉션과 동일한 순서로 처리됩니다.

위 내용은 C#에서 동시 작업을 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿