예제 #1
0
        public void DispatchMessages(IReadQueue readQueue)
        {
            if (readQueue == null)
            {
                throw new ArgumentNullException("readQueue");
            }

            object message;

            while (readQueue.TryDequeue(out message))
            {
                var messageType    = message.GetType();
                var dispatchMethod = DispatchMessageOfTypeMethod.MakeGenericMethod(messageType);
                dispatchMethod.Invoke(this, new[] { message });
                _applicationEventDispatcher.DispatchApplicationEvents();
            }

            _applicationEventDispatcher.DispatchApplicationEvents();
        }