Exemplo n.º 1
0
        /// <summary>
        /// Pauses the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <returns>A pause task.</returns>
        public override Task PauseAsync(IWorkItem <TAbsolute> item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            item.IsPaused = true;

            if (_ready.Contains(item))
            {
                _ready.Remove(item);
                _notReady.Add(item);
            }

            return(Task.FromResult(true));
        }
Exemplo n.º 2
0
        public void HeapBasedPriorityQueue_Simple()
        {
            var queue = new HeapBasedPriorityQueue <int>(Comparer <int> .Default);

            Assert.ThrowsException <InvalidOperationException>(() => queue.Peek());
            Assert.ThrowsException <InvalidOperationException>(() => queue.Dequeue());
            Assert.AreEqual(0, queue.Count);

            queue.Enqueue(2);
            queue.Enqueue(1);
            queue.Enqueue(3);
            queue.Enqueue(4);
            queue.Enqueue(5);

            Assert.AreEqual(5, queue.Count);
            Assert.AreEqual(1, queue.Peek());

            for (var i = 0; i <= 9; i++)
            {
                if (i is >= 1 and <= 5)
                {
                    Assert.IsTrue(queue.Contains(i));
                }