동시 수집의 개체를 여러 작업에서 사용하려고하지만 특정 리소스를 사용할 수있는 경우에만 작업을 수행하려고합니다. 이 자원의 가용성을 신호의 이유로 작업 스케줄링 및 WaitHandles
가, 내가으로 ManualResetEvent를 사용하고, 내 작업 기관은 다음과 같습니다 : 그러나 while(!_token.IsCancellationRequested)
{
operationsLock.WaitLock();
_token.ThrowIfCancellationRequested();
// dothings
}
, 나는 순간부터 잠금 잠금이 해제 것으로 나타났습니다 작업을 다시 스케줄하는 순간까지는 작업이 다시 시작될 수있는 수백 밀리 초가있을 수 있습니다. 실제로는 일정이 잡혀 있지 않기 때문에 발생하지 않을 수 있습니다.
TaskFactory를 사용하여 Tasks를 시작할 때이 동작을 어떻게 향상시킬 수 있습니까? 리소스를 사용할 수없는 동안 작업을 일시 중지하는 더 나은 전략이 있습니까?