protected virtual void Dispose(bool disposing) { if (!_disposed) { _disposed = true; this.Disconnect(MaslErrorCode.NormalRelease, 0); this.Connected = false; if (disposing) { if (_handshakeTimeoutMgr != null) { _handshakeTimeoutMgr.Dispose(); } _aleConnection.Dispose(); if (_macCalculator != null) { _macCalculator.Dispose(); } } } }