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); }