static void Main(string[] args)
        {
            Bus bus = new BusBuilder().Build();
            bus.Connect();

            bus.Subscribe<Message>(messageContext => Console.WriteLine("Received message: \'{0}\'", messageContext.Message.Text));

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
            bus.Close();
        }
        static void ConsumeRabbitMqMessages(int testCount)
        {
            new Thread(() =>
                {
                    var reset = new ManualResetEvent(false);
                    Bus bus = new BusBuilder()
                        .Configure(ctx => ctx.Consume<TestMessage>().WithExchange("rabbitMQ.test.exchange")
                                              .WithQueue("rabbitMQ.test.queue"))
                        .Build();
                    bus.Connect();
                    bus.Subscribe<TestMessage>(x =>
                        {
                            _rabbitMqMessageReceived++;
                            if (_rabbitMqMessageReceived >= testCount)
                                reset.Set();
                        });

                    reset.WaitOne();
                    Console.WriteLine("Finished consuming rabbitMQ messages: " + _rabbitMqMessageReceived);
                    bus.Close();
                }).Start();
        }