static LocksManager locksManager = new LocksManager();
Sync:
using (locksManager.Lock("your key"))
{
}
Async:
using (await locksManager.LockAsync("your key"))
{
}
Set lock timeout:
using (await locksManager.LockAsync("your key", TimeSpan.FromSeconds(2)))
{
}
Get lock handler:
using (var handler = await locksManager.LockAsync("your key", TimeSpan.FromSeconds(2)))
{
if (handler != null)
{
//lock is taken
}
}