SemaphoreSlim.Wait Method (Int32, CancellationToken)

.NET Framework (current version)

The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Blocks the current thread until it can enter the SemaphoreSlim, using a 32-bit signed integer that specifies the timeout, while observing a CancellationToken.

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

public bool Wait(
	int millisecondsTimeout,
	CancellationToken cancellationToken


Type: System.Int32

The number of milliseconds to wait, or Infinite(-1) 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.


millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.


The SemaphoreSlim instance has been disposed, or the CancellationTokenSource that created cancellationToken has 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(Int32, CancellationToken) and the time-out interval specified by millisecondsTimeout 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