title: what exactly happens when ManualResetEvent.WaitOne is called?
body: <p>Recently I came across an MSDN link which says that the ManualResetEventSlim class can be used for better performance when compared to ManualResetEvent class.</p>
  <p>&quot;In the .NET Framework 4, you can use the System.Threading.ManualResetEventSlim class for better performance when wait times are expected to be very short&quot;.</p>
  <p><a href="https://msdn.microsoft.com/en-us/library/5hbefs30%28v=vs.110%29.aspx" rel="nofollow noreferrer">https://msdn.microsoft.com/en-us/library/5hbefs30%28v=vs.110%29.aspx</a></p>
  <p>Please correct me if my understanding is wrong.</p>
  <p>When WaitOne(1000) is called for 1 sec</p>
  <ul>
  <li><p>the windows, apart from blocking the other threads from executing, makes the current thread to sleep for certain time and wakes up when it is notified.</p>
  </li>
  <li><p>Here the word blocking means that the thread sleeps for certain time until it is notified?</p>
  </li>
  <li><p>What does this sentence mean - &quot;when wait times are expected to be very short&quot;?</p>
  <p>Can somebody suggest any websites to understand the internal process of WaitOne</p>
  </li>
  </ul>