title: What are the differences between various threading synchronization options in C#?
body: <p>Can someone explain the difference between:</p>
  
  <ul>
  <li>lock (someobject) {}</li>
  <li>Using Mutex</li>
  <li>Using Semaphore</li>
  <li>Using Monitor</li>
  <li>Using Other .Net synchronization classes</li>
  </ul>
  
  <p>I just can't figure it out.  It seems to me the first two are the same?</p>