MKS.KeyedLocking.InMemory
1.0.0
dotnet add package MKS.KeyedLocking.InMemory --version 1.0.0
NuGet\Install-Package MKS.KeyedLocking.InMemory -Version 1.0.0
<PackageReference Include="MKS.KeyedLocking.InMemory" Version="1.0.0" />
<PackageVersion Include="MKS.KeyedLocking.InMemory" Version="1.0.0" />
<PackageReference Include="MKS.KeyedLocking.InMemory" />
paket add MKS.KeyedLocking.InMemory --version 1.0.0
#r "nuget: MKS.KeyedLocking.InMemory, 1.0.0"
#:package MKS.KeyedLocking.InMemory@1.0.0
#addin nuget:?package=MKS.KeyedLocking.InMemory&version=1.0.0
#tool nuget:?package=MKS.KeyedLocking.InMemory&version=1.0.0
MKS.KeyedLocking.InMemory
In-process keyed locking for single-instance applications.
Features
- SemaphoreSlim per key - Exclusive locking within one process
- Reference counting - Semaphores are removed when no longer needed
- Singleton registration -
AddInMemoryKeyedLock()extension method - Zero external dependencies beyond DI abstractions
Installation
dotnet add package MKS.KeyedLocking.InMemory
Dependency Injection
builder.Services.AddInMemoryKeyedLock();
Usage
public class OrderService(IKeyedLockService lockService)
{
public async Task ProcessOrderAsync(long orderId, CancellationToken cancellationToken)
{
await using (await lockService.AcquireAsync($"order:{orderId}", cancellationToken: cancellationToken))
{
// critical section - only one thread in this process
}
}
}
When to Use
Use this package when:
- You run a single application instance
- No web garden or multiple pods behind a load balancer
- You need fast, zero-network locking
For multi-instance deployments, use MKS.KeyedLocking.Redis or MKS.KeyedLocking.Oracle instead, optionally wrapped with MKS.KeyedLocking.Composite.
Requirements
- .NET 10.0
- MKS.KeyedLocking.Abstractions 1.0.0+
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- MKS.KeyedLocking.Abstractions (>= 1.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MKS.KeyedLocking.InMemory:
| Package | Downloads |
|---|---|
|
MKS.KeyedLocking.Composite
Composite keyed locking decorator for the MKS system. Serializes local contention via in-memory semaphores before acquiring a distributed lock (Redis/Oracle). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 142 | 7/6/2026 |
Version 1.0.0: Initial release.
InMemoryKeyedLockService with AddInMemoryKeyedLock DI extension.