public void EventPumpQueueLength(int numberOfProducers, bool producerDelay) { EventQueue q = new EventQueue(); EventProducer[] producers = new EventProducer[numberOfProducers]; for (int i = 0; i < numberOfProducers; i++) { producers[i] = new EventProducer(q, i, producerDelay); } using (EventPump pump = new EventPump(TestListener.NULL, q)) { pump.Name = "EventPumpQueueLength"; pump.Start(); foreach (EventProducer p in producers) { p.ProducerThread.Start(); } foreach (EventProducer p in producers) { p.ProducerThread.Join(); } pump.Stop(); } Assert.That(q.Count, Is.EqualTo(0)); foreach (EventProducer p in producers) { Console.WriteLine("#Events: {0}, MaxQueueLength: {1}", p.SentEventsCount, p.MaxQueueLength); Assert.IsNull(p.Exception, "{0}", p.Exception); } }
private static void StopPump(EventPump pump, int waitTime) { pump.Stop(); WaitForPumpToStop(pump, waitTime); }
private static void StopPump(EventPump pump, int waitTime) { pump.Stop(); WaitForPumpToStop(pump, waitTime); }
public void EventPumpQueueLength(int numberOfProducers, bool producerDelay) { EventQueue q = new EventQueue(); EventProducer[] producers = new EventProducer[numberOfProducers]; for (int i = 0; i < numberOfProducers; i++) { producers[i] = new EventProducer(q, i, producerDelay); } using (EventPump pump = new EventPump(TestListener.NULL, q)) { pump.Name = "EventPumpQueueLength"; pump.Start(); foreach (EventProducer p in producers) { p.ProducerThread.Start(); } foreach (EventProducer p in producers) { p.ProducerThread.Join(); } pump.Stop(); } Assert.That(q.Count, Is.EqualTo(0)); foreach (EventProducer p in producers) { Console.WriteLine( "#Events: {0}, MaxQueueLength: {1}", p.SentEventsCount, p.MaxQueueLength); Assert.IsNull(p.Exception, "{0}", p.Exception); } }