Пример #1
0
        /// <summary>
        /// Stops processing incoming messages
        /// </summary>
        /// <param name="waitToStop">True, to wait until stopped</param>
        public virtual void Stop(bool waitToStop)
        {
            _running = false;

            //Stop processing new incoming messages
            _incomingMessageQueue.Stop(waitToStop);

            //Stop communicator objects
            StopCommunicators();

            //Pulses WaitUntilReceiverCommunicatorConnected (waiting for a communicator)
            //and MessageDeliverer.SendDataMessage (waiting for available receiver) methods.
            //They must no wait anymore, since NGRID is shutting down.
            lock (_communicators)
            {
                Monitor.PulseAll(_communicators);
            }

            //Stop message deliverer
            _messageDeliverer.Stop(waitToStop);
        }
 /// <summary>
 /// Starts outgoing message queue.
 /// </summary>
 /// <param name="waitToStop">True, to block caller thread until this object stops</param>
 protected override void StopCommunicaiton(bool waitToStop)
 {
     _outgoingMessageQueue.Stop(waitToStop);
 }