/// <summary> /// Terminates the network connection and stops the message handling loop. /// </summary> public void Disconnect() { lock (this) { _running = false; try { // This is the correct way to stop an IO bound loop if (_conn != null) { _conn.Shutdown(); } } catch (IOException) { // Don't care about this. } } }