title: Is there a synchronization class that guarantee FIFO order in C#?
body: <p>What is it and how to use?</p>
  <p>I need that as I have a timer that inserts into DB every second, and I have a shared resource between timer handler and the main thread.
  I want to gurantee that if the timer handler takes more than one second in the insertion the waited threads should be executed in order.
  This is a sample code for my timer handler:</p>
  <pre><code>private void InsertBasicVaraibles(object param)
  {
      try
      {
          DataTablesMutex.WaitOne();//mutex for my shared resources
           //insert into DB
      }
      catch (Exception ex)
      {
          //Handle
      }
      finally
      {
          DataTablesMutex.ReleaseMutex();
      }
  }
  </code></pre>
  <p>But currently the mutex does not guarantee any order.</p>