SemaphoreSlim::Wait Method (TimeSpan, CancellationToken)
Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan that specifies the timeout, while observing a CancellationToken.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- timeout
-
Type:
System::TimeSpan
A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.
- cancellationToken
-
Type:
System.Threading::CancellationToken
The CancellationToken to observe.
Return Value
Type: System::Booleantrue if the current thread successfully entered the SemaphoreSlim; otherwise, false.
| Exception | Condition |
|---|---|
| OperationCanceledException | cancellationToken was canceled. |
| ArgumentOutOfRangeException | timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than MaxValue. |
| ObjectDisposedException | The semaphoreSlim instance has been disposed. -or- The CancellationTokenSource that created cancellationToken has already been disposed. |
If a thread or task is able to enter the semaphore, it decrements the CurrentCount property by one.
If cancellationToken is cancelled, or if a thread or task is blocked when calling Wait(TimeSpan, CancellationToken) and the timeout interval specified by timeout expires, the thread or task doesn’t enter the semaphore, and the CurrentCount property isn’t decremented. If cancellationToken is cancelled, the method throws an OperationCanceledException exception.
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1