コード例 #1
0
 //raw channel disconnected.
 void RawChannelDisconnected(object sender, System.EventArgs e)
 {
     lock (_disconnectLockObj)
     {
         if (_rawChannel != null)
         {
             _rawChannel.Buffer               = null;
             _rawChannel.ReceivedData        -= RawReceivedData;
             _rawChannel.Opened              -= Opened;
             _rawChannel.Opening             -= Opening;
             _rawChannel.Closed              -= Closed;
             _rawChannel.Closing             -= Closing;
             _rawChannel.Faulted             -= Faulted;
             _rawChannel.Disconnected        -= Disconnected;
             _rawChannel.Connected           -= Connected;
             _rawChannel.ReceivedDataSegment -= ReceivedDataSegment;
             _rawChannel = null;
         }
         if (_multiPacketManager != null)
         {
             _multiPacketManager.Dispose();
             _multiPacketManager = null;
         }
         if (_parser != null)
         {
             _parser.ParseSucceed -= SegmentParseSucceed;
             _parser.Dispose();
             _parser = null;
         }
     }
     DisconnectedHandler(null);
 }
コード例 #2
0
 /// <summary>
 ///     异步关闭
 /// </summary>
 /// <param name="callback">回调函数</param>
 /// <param name="state">状态</param>
 /// <returns>返回异步结果</returns>
 public IAsyncResult BeginClose(AsyncCallback callback, object state)
 {
     if (_multiPacketManager != null)
     {
         _multiPacketManager.Dispose();
         _multiPacketManager = null;
     }
     return(_rawChannel.BeginClose(callback, state));
 }
コード例 #3
0
 /// <summary>
 ///     断开
 /// </summary>
 public void Disconnect()
 {
     if (_rawChannel != null)
     {
         _rawChannel.Disconnect();
     }
     if (_multiPacketManager != null)
     {
         _multiPacketManager.Dispose();
         _multiPacketManager = null;
     }
 }
コード例 #4
0
 /// <summary>
 ///     关闭
 /// </summary>
 public void Close()
 {
     if (_rawChannel != null)
     {
         _rawChannel.Close();
         _rawChannel = null;
     }
     if (_multiPacketManager != null)
     {
         _multiPacketManager.Dispose();
         _multiPacketManager = null;
     }
 }