private SmartSyncQueue <T> GetQueue(QueuePrority prority) { switch (prority) { case QueuePrority.High: return(_highQ); case QueuePrority.Normal: return(_normalQ); default: throw new ArgumentOutOfRangeException("prority"); } }
public bool TryDequeue(out T result, out QueuePrority prority) { prority = default(QueuePrority); if (_highQ.TryDequeue(out result)) { prority = QueuePrority.High; return(true); } if (_normalQ.TryDequeue(out result)) { prority = QueuePrority.Normal; return(true); } return(false); }
public void Enqueue(T item, QueuePrority prority) { var queue = GetQueue(prority); queue.Enqueue(item); }
public void Clear(QueuePrority prority) { SmartSyncQueue <T> queue = GetQueue(prority); queue.Clear(); }