SemaphoreSlim.Wait Method (TimeSpan, CancellationToken)

.NET Framework (current version)

Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan that specifies the timeout, while observing a CancellationToken.

Namespace:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

Public Function Wait (
	timeout As TimeSpan,
	cancellationToken As CancellationToken
) As Boolean


Type: System.TimeSpan

A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

Type: System.Threading.CancellationToken

The CancellationToken to observe.

Return Value

Type: System.Boolean

true if the current thread successfully entered the SemaphoreSlim; otherwise, false.

Exception Condition

cancellationToken was canceled.


timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than MaxValue.


The semaphoreSlim instance has been disposed.


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.

Universal Windows Platform
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
Return to top