Difference between Wait() and Pulse()
<p>MSDN (<a href="http://msdn.microsoft.com/en-us/library/aa332339%28VS.71%29.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa332339(VS.71).aspx</a>) says that wait "Releases the lock on an object and blocks the current thread until it reacquires the lock." This implies basically lock toggling (Releasing, giving another thread a chance to run, reacquiring lock). But isn't this what Pulse() does? The only slight difference with Pulse it permenantly signals for the lock to be acquired?</p>

<p>The C# threading guide (http://www.albahari.com/threading/part4.aspx#_Wait_and_Pulse) has a very good analogy:</p>

<p>"Think of it like an automatic car park: you queue first at the pay station to validate your ticket (the waiting queue); "</p>

<p>So with the MSDN description, that means that when releasing the lock and blocking (same as wait - lock toggling), one car goes through and then the barrier (the lock) comes down?</p>
