public bool WaitSignaled(TimeSpan timeout, CancellationToken cancellationToken)
            {
                var waitResult = _semaphoreSlimSignalable.WaitSignaled(timeout, cancellationToken);

                _enteredSemaphore = waitResult == SemaphoreWaitResult.Entered;
                return(_enteredSemaphore);
            }
Exemplo n.º 2
0
 private Task <SemaphoreSlimSignalable.SemaphoreWaitResult>[] CreateWaitTasks(
     SemaphoreSlimSignalable semaphore,
     bool async,
     bool isSignaledWait,
     int threadsCount,
     TimeSpan timeout,
     CancellationToken cancellationToken = default) =>
 async?
 TasksUtils.CreateTasks(threadsCount, _ => isSignaledWait?semaphore.WaitSignaledAsync(timeout, cancellationToken) : semaphore.WaitAsync(timeout, cancellationToken)) :
     TasksUtils.CreateTasksOnOwnThread(threadsCount, _ => isSignaledWait ? semaphore.WaitSignaled(timeout, cancellationToken) : semaphore.Wait(timeout, cancellationToken));