public void EndDequeue() { if (isDequeueing) { lock (queueLock) { queue.Dequeue(); isDequeueing = false; } } }
public T BeginDequeue() { if (!isDequeueing) { lock (queueLock) { if (queue.Count > 0) { isDequeueing = true; return(queue.Peek()); } } } return(null); }
public void CancelDequeue() { isDequeueing = false; }