Amib.Threading.Internal.PriorityQueue.Dequeue C# (CSharp) Method

Dequeue() public method

Dequeque a work item.
public Dequeue ( ) : IHasWorkItemPriority
return IHasWorkItemPriority
        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;
        }

Usage Example

		public void Init()
		{
			PriorityQueue pq = new PriorityQueue();

			Assert.AreEqual(0, pq.Count);

			Assert.IsNull(pq.Dequeue());

			Assert.AreEqual(0, pq.Count);
		}
All Usage Examples Of Amib.Threading.Internal.PriorityQueue::Dequeue