제한된 스레드로 동시에 작업 실행
문제:
한 번에 최대 X개의 작업만 실행하여 순차적으로 실행해야 하는 작업입니다. 전통적으로 ThreadPool.QueueUserWorkItem()은 이러한 작업에 사용되었지만 이제는 차선책으로 간주됩니다.
작업을 사용한 솔루션:
이 동시성 제한을 달성하려면 다음을 사용합니다. 작업에서는 SemaphoreSlim 개체를 사용하여 사용 가능한 스레드 수를 관리할 수 있습니다. 다음은 접근 방식을 보여주는 코드 조각입니다.
SemaphoreSlim maxThread = new SemaphoreSlim(10); for (int i = 0; i < 115; i++) { maxThread.Wait(); Task.Factory.StartNew(() => { // Your task implementation }, TaskCreationOptions.LongRunning) .ContinueWith((task) => maxThread.Release()); }
코드 작동 방식은 다음과 같습니다.
위 내용은 C#을 사용하여 제한된 수의 스레드로 여러 작업을 동시에 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!