title: Queue implementation in C#
body: <p>I'm dealing with a hardware resource that can only handle 1 command at a time.  I'm going to exposing some of it's API functions via a web interface, so obviously there's a good chance more than 1 command will get sent at a time.  I have decided that queuing these commands when they're submitted is the best way to ensure serial processing.</p>
  
  <p>I'm planning on implementing the queue in a static class.  The web app code-behind will add a command by calling a method corresponding to the command they want.  I want the calling method to wait until it gets the output of its command, so no async magic is required.</p>
  
  <ol>
  <li><p>Am I doing this right?  Is there a better way?</p></li>
  <li><p>How do I start implementing the queue in C# (I usually work with Java)?  I assume I'll need some sort Event to signal a job has been added, and a Handler to initiate processing of the queue...</p></li>
  </ol>
  
  <p>I'm using .NET Framework 4.</p>