public IHasWorkItemPriority Dequeue() { IHasWorkItemPriority workItem = null; if(_workItemsCount > 0) { int queueIndex = GetNextNonEmptyQueue(-1); Debug.Assert(queueIndex >= 0); workItem = _queues[queueIndex].Dequeue() as IHasWorkItemPriority; Debug.Assert(null != workItem); --_workItemsCount; ++_version; } return workItem; }
public void Init() { PriorityQueue pq = new PriorityQueue(); Assert.AreEqual(0, pq.Count); Assert.IsNull(pq.Dequeue()); Assert.AreEqual(0, pq.Count); }