/// <summary> /// Disconnect /// </summary> public void Disconnect() { new Thread(delegate() { if (ConnectionFailed != null) { Delegate[] delegates = ConnectionFailed.GetInvocationList(); foreach (Delegate d in delegates) { ConnectionFailed -= (MessageDelegate)d; } } StopEventListener(); StopHeartbeatSender(); if (tcpClient != null) { tcpClient.Close(); } Disconnected?.Invoke(); }).Start(); }