コード例 #1
0
ファイル: TcpSession.cs プロジェクト: CSA/MessageServer
        /// <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
            });
        }
コード例 #2
0
ファイル: TcpClient.cs プロジェクト: CSA/MessageServer
        /// <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();
        }