protected MessageListener(String source, IProcessMessages messageProcessor, IReadMessages messageReader)
        {
            Verify.NotNull(messageProcessor, "messageProcessor");
            Verify.NotNull(messageReader, "messageReader");
            Verify.NotWhitespace(source, "source");

            this.messageProcessor = messageProcessor;
            this.messageReader = messageReader;

            listener = new Thread(ReadAllMessages) { IsBackground = true, Priority = ThreadPriority.AboveNormal, Name = source, };
        }
        protected MessageListener(String source, IProcessMessages messageProcessor, IReadMessages messageReader)
        {
            Verify.NotNull(messageProcessor, "messageProcessor");
            Verify.NotNull(messageReader, "messageReader");
            Verify.NotWhitespace(source, "source");

            this.messageProcessor = messageProcessor;
            this.messageReader    = messageReader;

            listener = new Thread(ReadAllMessages)
            {
                IsBackground = true, Priority = ThreadPriority.AboveNormal, Name = source,
            };
        }