title: What does the exit context mean for a WaitHandle.WaitOne mean?
body: <p>I'm trying to use a mutex to protect access to some hardware from multiple threads, but I'm confused as to what the <code>exitContext</code> parameter means / does:</p>
  
  <pre><code>public virtual bool WaitOne (
      int millisecondsTimeout,
      bool exitContext
  )
  </code></pre>
  
  <p><a href="http://msdn.microsoft.com/en-us/library/kzy257t0%28v=VS.80%29.aspx" rel="noreferrer">The docs</a> say:</p>
  
  <blockquote>
    <p><em>exitContext</em> - <strong>true</strong> to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it afterward; otherwise, <strong>false</strong>.</p>
  </blockquote>
  
  <p>...but what does that actually mean and what are the consequences of setting it to either true or false? I've set it to true for now and the code appears to work, but I'm nervous that I don't fully understand what it's up to under the hood!</p>