SemaphoreSlim Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
A lightweight alternative to Semaphore that limits the number of threads that can access a resource or pool of resources concurrently.
Assembly: mscorlib (in mscorlib.dll)
The SemaphoreSlim type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | SemaphoreSlim(Int32) | Initializes a new instance of the SemaphoreSlim class, specifying the initial number of requests that can be granted concurrently. |
![]() | SemaphoreSlim(Int32, Int32) | Initializes a new instance of the SemaphoreSlim class, specifying the initial and maximum number of requests that can be granted concurrently. |
| Name | Description | |
|---|---|---|
![]() | AvailableWaitHandle | Returns a WaitHandle that can be used to wait on the semaphore. |
![]() | CurrentCount | Gets the number of threads that will be allowed to enter the SemaphoreSlim. |
| Name | Description | |
|---|---|---|
![]() | Dispose() | Releases all resources used by the current instance of the SemaphoreSlim class. |
![]() | Dispose(Boolean) | Releases the unmanaged resources used by the ManualResetEventSlim, and optionally releases the managed resources. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | Release() | Exits the SemaphoreSlim once. |
![]() | Release(Int32) | Exits the SemaphoreSlim a specified number of times. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | Wait() | Blocks the current thread until it can enter the SemaphoreSlim. |
![]() | Wait(CancellationToken) | Blocks the current thread until it can enter the SemaphoreSlim, while observing a CancellationToken. |
![]() | Wait(Int32) | Blocks the current thread until it can enter the SemaphoreSlim, using a 32-bit signed integer that specifies the timeout. |
![]() | Wait(TimeSpan) | Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan to specify the timeout. |
![]() | Wait(Int32, CancellationToken) | Blocks the current thread until it can enter the SemaphoreSlim, using a 32-bit signed integer that specifies the timeout, while observing a CancellationToken. |
![]() | Wait(TimeSpan, CancellationToken) | Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan that specifies the timeout, while observing a CancellationToken. |
![]() | WaitAsync() | Asynchronously waits to enter the SemaphoreSlim. |
![]() | WaitAsync(CancellationToken) | Asynchronously waits to enter the SemaphoreSlim, while observing a CancellationToken. |
![]() | WaitAsync(Int32) | Asynchronously waits to enter the SemaphoreSlim, using a 32-bit signed integer to measure the time interval. |
![]() | WaitAsync(TimeSpan) | Asynchronously waits to enter the SemaphoreSlim, using a TimeSpan to measure the time interval. |
![]() | WaitAsync(Int32, CancellationToken) | Asynchronously waits to enter the SemaphoreSlim, using a 32-bit signed integer to measure the time interval, while observing a CancellationToken. |
![]() | WaitAsync(TimeSpan, CancellationToken) | Asynchronously waits to enter the SemaphoreSlim, using a TimeSpan to measure the time interval, while observing a CancellationToken. |
Show:


