AsyncKeyedLock 2.0.0
AsyncKeyedLock
An asynchronous .NET Standard 2.0 library that allows you to lock based on a key.
Installation
The recommended means is to use NuGet, but you could also download the source code from here.
Usage
var asyncKeyedLocker = new AsyncKeyedLocker();
using (var lockObj = await asyncKeyedLocker.LockAsync(myObject))
{
...
}
You can also set the maximum number of requests for the semaphore that can be granted concurrently (set to 1 by default):
var asyncKeyedLocker = new AsyncKeyedLocker(2);
If you would like to see how many concurrent requests there are for a semaphore for a given key:
int myCount = asyncKeyedLocker.GetCount(myObject);
And if for some reason you need to force release the requests in the semaphore for a key:
asyncKeyedLocker.ForceRelease(myObject);
You may also use Dependency Injection to inject an instance of AsyncKeyedLock.
Credits
This library is based on Stephen Cleary's solution.
Showing the top 20 packages that depend on AsyncKeyedLock.
| Packages | Downloads |
|---|---|
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
23 |
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
24 |
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
25 |
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
26 |
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
27 |
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
30 |
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
31 |
|
EasyCaching.Core
EasyCaching is a open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
|
32 |
|
Volo.Abp.DistributedLocking.Abstractions
Package Description
|
23 |
|
Volo.Abp.DistributedLocking.Abstractions
Package Description
|
24 |
|
Volo.Abp.DistributedLocking.Abstractions
Package Description
|
25 |
|
Volo.Abp.DistributedLocking.Abstractions
Package Description
|
27 |
No longer static; now requires you to create an instance and store it, or inject it via dependency injection.
.NET Standard 2.0
- No dependencies.
| Version | Downloads | Last updated |
|---|---|---|
| 7.1.7 | 6 | 10/06/2025 |
| 7.1.6 | 21 | 04/14/2025 |
| 7.1.5-alpha | 13 | 04/14/2025 |
| 7.1.4 | 23 | 12/02/2024 |
| 7.1.4-preview | 21 | 11/30/2024 |
| 7.1.3 | 21 | 11/19/2024 |
| 7.0.2 | 24 | 11/25/2024 |
| 7.0.1 | 22 | 11/28/2024 |
| 7.0.0 | 22 | 11/21/2024 |
| 7.0.0-rc3 | 18 | 11/25/2024 |
| 7.0.0-rc2 | 19 | 11/28/2024 |
| 7.0.0-rc1 | 18 | 11/30/2024 |
| 7.0.0-beta | 18 | 01/01/2025 |
| 7.0.0-alpha | 25 | 11/25/2024 |
| 6.4.2 | 23 | 05/29/2024 |
| 6.4.1 | 26 | 05/29/2024 |
| 6.4.0 | 25 | 05/29/2024 |
| 6.3.4 | 31 | 05/29/2024 |
| 6.3.4-rc | 28 | 05/29/2024 |
| 6.3.4-beta | 21 | 05/31/2024 |
| 6.3.3 | 25 | 05/29/2024 |
| 6.3.2 | 21 | 05/29/2024 |
| 6.3.0 | 31 | 05/29/2024 |
| 6.2.6 | 22 | 05/29/2024 |
| 6.2.5 | 26 | 05/29/2024 |
| 6.2.4 | 26 | 05/29/2024 |
| 6.2.3 | 24 | 05/29/2024 |
| 6.2.3-beta | 26 | 05/31/2024 |
| 6.2.2 | 27 | 05/29/2024 |
| 6.2.1 | 25 | 05/29/2024 |
| 6.2.0 | 23 | 05/29/2024 |
| 6.1.1 | 26 | 05/29/2024 |
| 6.1.1-rc | 23 | 05/29/2024 |
| 6.1.1-beta | 25 | 05/31/2024 |
| 6.1.0 | 27 | 05/29/2024 |
| 6.0.5 | 29 | 05/29/2024 |
| 6.0.5-alpha | 22 | 05/29/2024 |
| 6.0.4 | 26 | 05/29/2024 |
| 6.0.4-rc6 | 23 | 05/29/2024 |
| 6.0.4-rc5 | 24 | 05/29/2024 |
| 6.0.4-rc3 | 23 | 05/29/2024 |
| 6.0.4-rc | 24 | 05/29/2024 |
| 6.0.4-beta | 21 | 05/31/2024 |
| 6.0.4-alpha | 23 | 05/29/2024 |
| 6.0.3 | 26 | 11/28/2024 |
| 6.0.2 | 22 | 05/29/2024 |
| 6.0.1 | 24 | 05/29/2024 |
| 5.1.2 | 24 | 05/29/2024 |
| 5.1.1 | 26 | 05/29/2024 |
| 5.1.0 | 24 | 05/29/2024 |
| 5.0.4 | 24 | 05/29/2024 |
| 5.0.3 | 27 | 05/29/2024 |
| 5.0.3-rc | 25 | 05/29/2024 |
| 5.0.2-rc | 22 | 05/29/2024 |
| 5.0.1 | 20 | 11/27/2024 |
| 4.0.2 | 23 | 05/29/2024 |
| 3.2.3 | 25 | 05/29/2024 |
| 3.2.1 | 25 | 05/29/2024 |
| 3.2.0 | 29 | 05/29/2024 |
| 3.0.1 | 30 | 05/29/2024 |
| 3.0.0 | 27 | 05/29/2024 |
| 2.0.3 | 24 | 05/29/2024 |
| 2.0.2 | 24 | 05/29/2024 |
| 2.0.1 | 25 | 05/29/2024 |
| 2.0.0 | 22 | 05/29/2024 |
| 1.1.0 | 27 | 05/29/2024 |
| 1.0.1 | 27 | 05/29/2024 |
| 1.0.0 | 23 | 05/29/2024 |