public void AsyncProcessRequest(IClientChannelSinkStack sinkStack, IMessage msg, ITransportHeaders headers, Stream stream) { TcpClientSocketHandler handler = this.SendRequestWithRetry(msg, headers, stream); if (handler.OneWayRequest) { handler.ReturnToCache(); } else { handler.DataArrivedCallback = new WaitCallback(this.ReceiveCallback); handler.DataArrivedCallbackState = sinkStack; handler.BeginReadMessage(); } }
} // ProcessMessage public void AsyncProcessRequest(IClientChannelSinkStack sinkStack, IMessage msg, ITransportHeaders headers, Stream stream) { InternalRemotingServices.RemotingTrace("TcpClientTransportSink::AsyncProcessRequest"); TcpClientSocketHandler clientSocket = SendRequestWithRetry(msg, headers, stream); if (clientSocket.OneWayRequest) { clientSocket.ReturnToCache(); } else { // do an async read on the reply clientSocket.DataArrivedCallback = new WaitCallback(this.ReceiveCallback); clientSocket.DataArrivedCallbackState = sinkStack; clientSocket.BeginReadMessage(); } } // AsyncProcessRequest