Exemplo n.º 1
0
        /// <summary>
        /// Called when [work].
        /// </summary>
        protected override void OnWork()
        {
            var messages = (MessageManagerInfo[])null;

            lock (_messageQueue)
            {
                messages = _messageQueue.ToArray();
            }

            if (_messageQueue.Count == 0)
            {
                return;
            }

            foreach (var msg in messages)
            {
                if (_messageStates[msg.MessageId.GetHashCode()] == MessageState.Allow)
                {
                    _workManager.ReceivedMQMessage(msg);
                }

                lock (_messageQueue)
                {
                    _messageQueue.Remove(msg);
                }
            }
        }