protected virtual void Dispose(bool disposing) { this.m_Disposed = true; if (disposing) { m_Network.RegisterNetworkStatusProvider(this, false, null); Socket s = (Socket)Interlocked.Exchange(ref m_Socket, null); if (s != null) { s.Close(); } } }