/// <summary>
 /// Starts this message queue.
 /// </summary>
 public void Start()
 {
     try
     {
         if (_messageDeliveryThread != null)
         {
             return;
         }
         _wasStarted = false;
         RegisterAtAllMessageChannels();
         _shutdownWatcher = ShutdownWatcher.Create(this);
         _terminatedEvent.Reset();
         Thread thread;
         lock (_syncObj)
             _messageDeliveryThread = thread = new Thread(DoWork)
             {
                 Name = string.Format("AMQ '{0}'", _queueName)
             };
         thread.Start();
     }
     catch (Exception e)
     {
         ServiceRegistration.Get <ILogger>().Error("Unhandled exception in start method of async message queue '{0}'",
                                                   e, _queueName);
     }
 }
        /// <summary>
        /// Starts this message queue.
        /// </summary>
        public void Start()
        {
            if (_messageDeliveryThread != null)
            {
                return;
            }
            RegisterAtAllMessageChannels();
            _shutdownWatcher = ShutdownWatcher.Create(this);
            _terminatedEvent.Reset();
            Thread thread;

            lock (_syncObj)
                _messageDeliveryThread = thread = new Thread(DoWork)
                {
                    Name = string.Format("AMQ '{0}'", _queueName)
                };
            thread.Start();
        }