public void Enqueue(long position, ExecutionMode mode, TranslationTier tier, bool isComplete) { TranslatorQueueItem item = new TranslatorQueueItem(position, mode, tier, isComplete); ConcurrentStack <TranslatorQueueItem> queue = _translationQueue[(int)tier]; queue.Push(item); _queueDataReceivedEvent.Set(); }
public void Enqueue(TranslatorQueueItem item) { ConcurrentStack <TranslatorQueueItem> queue = _translationQueue[(int)item.Tier]; if (queue.Count >= MaxQueueSize) { queue.TryPop(out _); } queue.Push(item); _queueDataReceivedEvent.Set(); }
public bool TryDequeue(out TranslatorQueueItem item) { for (int prio = 0; prio < _translationQueue.Length; prio++) { if (_translationQueue[prio].TryPop(out item)) { return(true); } } item = default(TranslatorQueueItem); return(false); }