Exemplo n.º 1
0
        public void ReaderWriterPriorityQueueTest()
        {
            var producer   = new ReaderWriterPriorityQueue <string>();
            var resetEvent = new ManualResetEventSlim(false);

            var _ = Task.Factory.StartNew(() =>
            {
                var item = producer.Dequeue();
                Assert.Equal("This is a higher message", item);
                // ReSharper disable once AccessToDisposedClosure
                resetEvent.Set();
            });

            producer.Enqueue("This is a message");
            producer.Enqueue("This is a higher message", 2);
            resetEvent.Wait();
            resetEvent.Dispose();
        }
Exemplo n.º 2
0
 /// <summary>
 /// PriorityQueueController constructor.
 /// </summary>
 /// <param name="frequency">producer frequency</param>
 protected PriorityQueueProducer(int frequency = default)
     : base(frequency)
 {
     _consumers = new HashSet <IQueueConsumer <T> >();
     _queue     = new ReaderWriterPriorityQueue <T>();
 }