AsyncKeyedLock 1.1.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

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):

AsyncKeyedLocker.MaxCount = 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);

Credits

This library is based on Stephen Cleary's solution.

Showing the top 20 packages that depend on AsyncKeyedLock.

Packages Downloads
Volo.Abp.DistributedLocking.Abstractions
Package Description
3
Volo.Abp.DistributedLocking.Abstractions
Package Description
2
Volo.Abp.DistributedLocking.Abstractions
Package Description
1

Allowed changing of max requests, getting request counts and force releasing locks.

.NET Standard 2.0

  • No dependencies.

Version Downloads Last updated
7.1.8 3 12/11/2025
7.1.8-beta5 1 12/12/2025
7.1.8-beta4 1 12/12/2025
7.1.8-beta3 1 12/12/2025
7.1.8-beta2 1 12/12/2025
7.1.8-beta 1 12/12/2025
7.1.7 1 12/12/2025
7.1.6 1 12/12/2025
7.1.5-alpha 1 12/12/2025
7.1.4 1 12/12/2025
7.1.4-preview 2 12/12/2025
7.1.3 1 12/12/2025
7.0.2 1 12/12/2025
7.0.1 1 12/12/2025
7.0.0 1 12/12/2025
7.0.0-rc3 1 12/12/2025
7.0.0-rc2 1 12/12/2025
7.0.0-rc1 1 12/12/2025
7.0.0-beta 1 12/12/2025
7.0.0-alpha 1 12/12/2025
6.4.2 1 12/12/2025
6.4.1 1 12/12/2025
6.4.0 1 12/12/2025
6.3.4 1 12/12/2025
6.3.4-rc 1 12/12/2025
6.3.4-beta 1 12/12/2025
6.3.3 1 12/12/2025
6.3.2 1 12/12/2025
6.3.0 1 12/12/2025
6.2.6 2 12/12/2025
6.2.5 1 12/12/2025
6.2.4 1 12/12/2025
6.2.3 1 12/12/2025
6.2.3-beta 1 12/12/2025
6.2.2 1 12/12/2025
6.2.1 1 12/12/2025
6.2.0 1 12/12/2025
6.1.1 1 12/12/2025
6.1.1-rc 1 12/12/2025
6.1.1-beta 2 12/12/2025
6.1.0 1 12/12/2025
6.0.5 1 12/12/2025
6.0.5-alpha 1 12/12/2025
6.0.4 1 12/12/2025
6.0.4-rc6 1 12/12/2025
6.0.4-rc5 1 12/12/2025
6.0.4-rc3 1 12/12/2025
6.0.4-rc 2 12/11/2025
6.0.4-beta 1 12/12/2025
6.0.4-alpha 1 12/12/2025
6.0.3 1 12/12/2025
6.0.2 1 12/12/2025
6.0.1 1 12/12/2025
5.1.2 1 12/12/2025
5.1.1 1 12/12/2025
5.1.0 1 12/12/2025
5.0.4 1 12/12/2025
5.0.3 1 12/12/2025
5.0.3-rc 1 12/12/2025
5.0.2-rc 1 12/12/2025
5.0.1 1 12/12/2025
4.0.2 1 12/12/2025
3.2.3 1 12/12/2025
3.2.1 1 12/12/2025
3.2.0 1 12/12/2025
3.0.1 1 12/12/2025
3.0.0 1 12/12/2025
2.0.3 1 12/12/2025
2.0.2 1 12/12/2025
2.0.1 1 12/12/2025
2.0.0 1 12/12/2025
1.1.0 1 12/12/2025
1.0.1 1 12/12/2025
1.0.0 1 12/12/2025