title: Monitor.TryEnter doesn't work
body: <p>Part of my code-behind:</p>
  
  <pre><code>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);
  }
  </code></pre>
  
  <p>Output (pressing several times in less than 5 seconds):</p>
  
  <pre><code>taken...taken...taken... done
  done
  done
  </code></pre>
  
  <p>How-come?? the <code>_sync</code> lock is never being taken, why?</p>