Пример #1
0
        public void ReaderWriterQueueTest()
        {
            var producer   = new ReaderWriterQueue <string>();
            var resetEvent = new ManualResetEventSlim(false);

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

            producer.Enqueue("This is a message");
            resetEvent.Wait();
            resetEvent.Dispose();
        }
Пример #2
0
 /// <summary>
 /// QueueController constructor.
 /// </summary>
 /// <param name="frequency">producer frequency</param>
 protected QueueProducer(int frequency = default)
     : base(frequency)
 {
     _consumers = new HashSet <IQueueConsumer <T> >();
     _queue     = new ReaderWriterQueue <T>();
 }