Часть моего кода:
object _sync = new object();
private async void OnKeyDown(object sender, KeyEventArgs e) {
if (!Monitor.TryEnter(_sync)) return;
Trace.Write("taken...");
await Task.Delay(TimeSpan.FromSeconds(5));
Trace.WriteLine(" done");
Monitor.Exit(_sync);
}
Выход (нажатие несколько раз менее чем за 5 секунд):
taken...taken...taken... done
done
done
Как пришел?? блокировка _sync
никогда не выполняется, почему?