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(); }
/// <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>(); }