title: Operation is not valid due to the current state of the object
body: <p>Sometimes, when running a Mono .NET application (it seems to not depend on the input data, as it does not change), I run into following situation:
  when trying to Dequeue an element from a (non-empty, I check its Count beforehand) Queue, an exception is thrown:</p>
  
  <blockquote>
    <p>Unhandled Exception: System.InvalidOperationException: Operation is not valid due to the current state of the object
    at System.Collections.Generic.Queue<code>1[DBWorkItem].Peek ()[0x00000]
      at System.Collections.Generic.Queue</code>1[DBWorkItem].Dequeue () [0x00000]
      at DBProcessor.process (System.Object q) [0x0006b] in &lt;...></p>
  </blockquote>
  
  <p>Though I can certainly catch this exception, the element is dequeued and lost. Has anyone else encountered this behavior, too?</p>