title: C# wait and pulse
body: <p>In Java you can wait on every object, so this kind of scenario is possible to program:</p>
  
  <p>Thread A waits on object a</p>
  
  <p>Thread B waits on object b</p>
  
  <p>Thread C notifys on a</p>
  
  <p>Thread A notifys on b</p>
  
  <p>if i use C#'s Monitor, it seems to me that Thread C could only wake b up (or b and a), then how do i make such a scenario possible?</p>