c# queue dequeue while loop