/// <summary> /// Release resources /// </summary> private void Release() { if (IsConnected) { Disconnect(); } if (_receiveEventArg.InUse() || _sendEventArg.InUse()) { return; } lock (_releasedLock) { if (_released) { return; } _released = true; } // Update statistic BytesPending = 0; BytesSending = 0; _receiveEventArg.Reset(); _sendEventArg.Reset(); // Unregister session Server.UnregisterSession(Id, new SocketArgs[] { _receiveEventArg, _sendEventArg }); }
/// <summary> /// Release resources /// </summary> private void Release() { if (IsConnected) { Disconnect(); } if (_receiveEventArg.InUse() || _sendEventArg.InUse()) { return; } lock (_releasedLock) { if (_released) { return; } _released = true; } // Update statistic BytesPending = 0; BytesSending = 0; _receiveEventArg.Reset(); _sendEventArg.Reset(); }