Can I use this approach safely (without risk of deadlock):
public class Foo
{
private readonly object locker = new();
public void Test()
{
lock(locker)
{
Task.Delay(TimeSpan.FromSeconds(1)).GetAwaiter().GetResult();
}
}
}
Or should we use something like Nito.AsyncEx:
public class Bar
{
private readonly AsyncLock mutex = new();
public async Task Test()
{
using (await mutex.LockAsync())
{
await Task.Delay(TimeSpan.FromSeconds(1));
}
}
}