Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        public void Enqueue(TranslatorQueueItem item)
        {
            ConcurrentStack <TranslatorQueueItem> queue = _translationQueue[(int)item.Tier];

            if (queue.Count >= MaxQueueSize)
            {
                queue.TryPop(out _);
            }

            queue.Push(item);

            _queueDataReceivedEvent.Set();
        }
Ejemplo n.º 3
0
        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);
        }