title: C# - Monitor conditional variable (pthread_cond_wait equivalent)
body: <p>C(++) allows you to do something like this:</p>
  
  <pre><code>pthread_cond_wait(condition, &amp;monitor);
  </code></pre>
  
  <blockquote>
    <p>These functions atomically release mutex and cause the calling thread to block on the condition variable cond;</p>
  </blockquote>
  
  <pre><code>pthread_cond_broadcast(condition);
  </code></pre>
  
  <blockquote>
    <p>The pthread_cond_broadcast() function shall unblock all threads currently blocked on the specified condition variable cond.</p>
  </blockquote>
  
  <p>Is there anything similar in C# when you want to differentiate monitor waiting?</p>