title: Dequeing existing object from the Queue returns null
body: <p>I have a WPF app where I use MVVM and it also uses NServicebus.
  I have a BusHandler class inherited from IHandleMessages which is responsible for receiving the messages from NServicebus.
  Now, when I receive the message I need to assign it to some value of my ViewModel and raise some event to notify my VIewModel that the value was updated and now needs to be processed.
  For this purpose I created the standard MS Queue object and added to the Queue OnChange event. The Queue object is static so that I could access it from BusHandler. So the logic is: BusHandler receives the message from NServicebus, places the message into the static Queue object, this enqueue method raises OnChange event and my processing method knows that value was updated and needs to be processed.
  Now the strange part:
  Before extracting the object from the queue I check whether my Queue contains anything:</p>
  
  <pre><code>if(Queue.Count&gt;0)
  {
  var obj = Queue.Dequeue();
  ...
  }
  </code></pre>
  
  <p>And this is where the bad magic starts:
  In most of the cases I successfully receive the object, but in some cases the if condition says that the Queue contains something (and it's true) but dequeueing returns me null.</p>
  
  <p>Why is that and how can I resolve it?
  And maybe there is a better way to communicate with the ViewModel from the Handler class?</p>