public static void Main(string[] args) { Console.WriteLine("Hello, world!"); // This using block defines the lifetime of the queue and therefore the lifetime of all producers and consumers using (SynchronizedQueue<string> qs = new SynchronizedQueue<string>(true)) { // Now we're creating several producers and consumers AbstractQueueProducer<string> producer1 = new DummyProducer(qs); AbstractQueueProducer<string> producer2 = new DummyProducer(qs); AbstractQueueProducer<string> producer3 = new DummyProducer(qs); AbstractQueueProducer<string> producer4 = new DummyProducer(qs); AbstractQueueConsumer<string> consumer1 = new DummyConsumer(qs); AbstractQueueConsumer<string> consumer2 = new DummyConsumer(qs); AbstractQueueConsumer<string> consumer3 = new DummyConsumer(qs); AbstractQueueConsumer<string> consumer4 = new DummyConsumer(qs); AbstractQueueConsumer<string> consumer5 = new DummyConsumer(qs); // All consumers/producers have been created. Now let's have the main thread rest for a while. Thread.Sleep(5000); // Alright, enough sleeping for the main thread! Let's get out of this using block and therefore kill all consumers/workers and the queue itself! } Console.WriteLine("Goodbye, world! (press enter)"); Console.Read(); }
public void TestCustomConsumer() { bool logToFile = ZooKeeper.LogToFile; ZooKeeper.LogToFile = false; var dummy = new DummyConsumer(); ILogProducer log = TypeLogger <LogAndConfigTests> .Instance; ZooKeeper.CustomLogConsumer = dummy; log.warn("test"); Assert.True(dummy.called); dummy.called = false; ZooKeeper.CustomLogConsumer = null; log.warn("test"); Assert.False(dummy.called); ZooKeeper.LogToFile = logToFile; }