I am not clear (and can\'t find documentation clear enough): when using the lock keyword in an async method: will the thread be blocked if the object is already blocked or will
This has been disallowed to stop deadlocks (i.e. developers hurting themselves). The best solution I've found is to use semaphores - See this post for details.
Relevant code extract:
static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 1);
...
await semaphoreSlim.WaitAsync();
try
{
await Task.Delay(1000);
}
finally
{
semaphoreSlim.Release();
}