this can never be null, unless the method was called using a call instruction in hand-written IL.
However, if you use the same Queue instance on multiple threads simultaneously, the queue will become corrupted and lose data.
For example, if two items are added simultaneously to a near-capacity queue, the first item might be added to the array after the second thread resizes it, which will end up copying a null to the resized array and adding the first item to the old array.
You should protect your queues with locks or use .Net 4’s ConcurrentQueue<T>.