/// <summary> /// Adds the message. /// </summary> /// <param name="message">The message.</param> internal void AddMessage(IMessage message) { if (message.AllowParallelExecution) { if (LOGGER.IsDebugEnabled) { LOGGER.Debug(string.Format("TCPChannel-Receive, forwarding message in parallel mode. {0}", message.ToString())); } InternalReceiveRequestMessageDelegate d = new InternalReceiveRequestMessageDelegate(mContainer.Channel.InternalOnReceiveRequestMessage); d.BeginInvoke(mContainer.Channel, new ReceiveMessageEventArgs(mSessionId, message), new AsyncCallback(CallBack), d); } else { if (LOGGER.IsDebugEnabled) { LOGGER.Debug(string.Format("TCPChannel-Receive, forwarding message in sequential mode. {0}", message.ToString())); } mQueue.Enqueue(message); mResetEvent.Set(); } }
private void CallBack(IAsyncResult asyncResult) { InternalReceiveRequestMessageDelegate d = asyncResult.AsyncState as InternalReceiveRequestMessageDelegate; d.EndInvoke(asyncResult); }