title: Queue<T>.Dequeue returns null
body: <p>I have a scenario where </p>
  
  <ul>
  <li><p>multiple threads are pushing data on a Queue </p></li>
  <li><p>only ONE thread is processing data using code below</p></li>
  </ul>
  
  <p>code -</p>
  
  <pre><code>  while ( Continue )
    {
          while ( queue.Count &gt; 0 )
          {
               MyObj o = queue.Dequeue();
               someProcess(o);
          }
          myAutoResetEvent.WaitOne();
    }
  </code></pre>
  
  <p>But sometimes, queue.Dequeue() returns null in the scenario above
  What gives ?</p>