public void Dispose() { lock (_async) { if (con != null) { con.CloseConnect(); } foreach (IGroup grp in _groups) { grp.Dispose(); } _closed = true; } }
private void Btn_openConnect(object sender, RoutedEventArgs e) { if (IsConnected) { if (iConnectType != null) { iConnectType.CloseConnect(); } IsConnected = false; return; } string strProtocol = cmbProtocolType.Text; string strIPAddress = cmbIpAddress.Text; switch (strProtocol) { case "UDP": iConnectType = new UDPConnect(strIPAddress, Port); break; case "Ping": iConnectType = new PingTest(strIPAddress); break; default: iConnectType = new UDPConnect(strIPAddress, Port); break; } iConnectType.GetRcvBufferEvent += DisPlayDataAsync; if (iConnectType.OpenConnect()) { IsConnected = true; } else { IsConnected = false; return; } }