private static void OnReceive(IAsyncResult result)
 {
     if (!result.CompletedSynchronously)
     {
         bool flag;
         DuplexSessionOneWayChannelListener.ChannelReceiver asyncState = (DuplexSessionOneWayChannelListener.ChannelReceiver)result.AsyncState;
         if (asyncState.OnCompleteReceive(result, out flag))
         {
             asyncState.StartReceiving();
         }
         if (flag)
         {
             asyncState.Dispatch();
         }
     }
 }
 public void AcceptInnerChannel(DuplexSessionOneWayChannelListener listener, IDuplexSessionChannel channel)
 {
     DuplexSessionOneWayChannelListener.ChannelReceiver channelReceiver = new DuplexSessionOneWayChannelListener.ChannelReceiver(listener, channel);
     this.receivers.Add(channel, channelReceiver);
     channelReceiver.StartReceiving();
 }