예제 #1
0
        public void Messages_are_dequeued()
        {
            var       block    = new AutoResetEvent(false);
            const int sent     = 10;
            var       received = 0;

            // Anything handled is sent to zmq
            var consumer = new ZmqConsumer <StringEvent>("tcp://127.0.0.1:5000");

            // Anything taken from zmq goes to the console and is counted
            var producer = new ZmqProducer <StringEvent>("tcp://127.0.0.1:5000").Consumes(@event =>
            {
                Console.WriteLine(@event.Text);
                received++;
                if (received >= sent)
                {
                    block.Set();
                }
            });

            producer.Start();

            consumer.Handle(new StringEvent("Test1"));
            consumer.Handle(new StringEvent("Test2"));
            consumer.Handle(new StringEvent("Test3"));
            consumer.Handle(new StringEvent("Test4"));
            consumer.Handle(new StringEvent("Test5"));
            consumer.Handle(new StringEvent("Test6"));
            consumer.Handle(new StringEvent("Test7"));
            consumer.Handle(new StringEvent("Test8"));
            consumer.Handle(new StringEvent("Test9"));
            consumer.Handle(new StringEvent("Test10"));

            block.WaitOne();
            producer.Dispose();
            consumer.Dispose();
        }
예제 #2
0
        public void Messages_are_dequeued()
        {
            var block = new AutoResetEvent(false);
            const int sent = 10;
            var received = 0;

            // Anything handled is sent to zmq
            var consumer = new ZmqConsumer<StringEvent>("tcp://127.0.0.1:5000");
            
            // Anything taken from zmq goes to the console and is counted
            var producer = new ZmqProducer<StringEvent>("tcp://127.0.0.1:5000").Consumes(@event =>
            {
                Console.WriteLine(@event.Text);
                received++;
                if (received >= sent)
                {
                    block.Set();
                }
            });
            producer.Start();

            consumer.Handle(new StringEvent("Test1"));
            consumer.Handle(new StringEvent("Test2"));
            consumer.Handle(new StringEvent("Test3"));
            consumer.Handle(new StringEvent("Test4"));
            consumer.Handle(new StringEvent("Test5"));
            consumer.Handle(new StringEvent("Test6"));
            consumer.Handle(new StringEvent("Test7"));
            consumer.Handle(new StringEvent("Test8"));
            consumer.Handle(new StringEvent("Test9"));
            consumer.Handle(new StringEvent("Test10"));
            
            block.WaitOne();
            producer.Dispose();
            consumer.Dispose();
        }