public void Start()
        {
            messageDisrupter = new Disruptor<RingbufferByteArray>(() => new RingbufferByteArray(), new SingleThreadedClaimStrategy(ringbufferSize), new SleepingWaitStrategy(), TaskScheduler.Default);

            // Switch to this line to use busy spin input queue
            //messageDisrupter = new Disruptor<RingbufferByteArray>(() => new RingbufferByteArray(), new SingleThreadedClaimStrategy(ringbufferSize), new BusySpinWaitStrategy(), TaskScheduler.Default);

            messageDisrupter.HandleEventsWith(messageProcessor).Then(performanceRecorder);
            messageDisrupter.HandleExceptionsWith(new IncomingMessageQueueErrorHandler());
            messageRingBuffer = messageDisrupter.Start();
            performanceRecorder.Setup(messageRingBuffer, 5000);

            logger.Info("Incoming message queue started.");
        }