title: Guaranteed semaphore order?
body: <p>The <a href="http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx" rel="noreferrer">documentation</a> for the .NET Semaphore class states that:</p>
  
  <blockquote>
    <p>There is no guaranteed order, such as FIFO or LIFO, in which blocked threads enter the semaphore.</p>
  </blockquote>
  
  <p>In this case, if I want a guaranteed order (either FIFO or LIFO), what are my options?  Is this something that just isn't easily possible?  Would I have to write my own Semaphore?  I assume that would be pretty advanced?</p>
  
  <p>Thanks,</p>
  
  <p>Steve</p>