title: When is a ConcurrentQueue needed?
body: <p>I'm asking this related to this question: <a href="https://stackoverflow.com/questions/46808853/using-events-on-multithreading-socket-server">Using events on multithreading socket server</a></p>
  
  <p>I´ve implemented a <code>ConcurrentQueue</code> thinking it would be needed to avoid problems with multi-threading. When doing it I've noticed the only difference with the standard <code>Queue</code> is in the <code>Dequeue()</code> method, asking for an <code>out</code> parameter.</p>
  
  <p>It made me think the only protection is within the thread(s) dequeuing the object, is this true?</p>
  
  <p>In my game I have a main thread processing my game logic then another thread per player that is doing the jobs of listening, serialising and sending data.</p>
  
  <p>So my <code>ConcurrentQueue</code> will be enqueued and dequeued by different threads but only one and always the same will call either enqueue or dequeue.</p>
  
  <p>So I'm right thinking I'll be OK with a simple queue?</p>
  
  <p>Is <code>ConcurrentQueue</code> only needed when calling <code>Dequeue()</code> simultaneously from multiple threads?</p>