Я раньше не использовал параллельную очередь.
Можно ли использовать TryDequeue, как показано ниже, в цикле while? Может ли это не застрять навсегда?
var cq = new ConcurrentQueue<string>();
cq.Enqueue("test");
string retValue;
while(!cq.TryDequeue(out retValue))
{
// Maybe sleep?
}
//Do rest of code