/// <summary> /// 切断コマンド送信後イベント /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private void evDisconnected(object sender, EventArgs e) { m_StopRequest.Set(); m_CommunicationThread.Join(10000); m_StopRequest.Dispose(); m_CommunicationThread = null; m_StopRequest = null; m_TcpClient = null; m_Address = null; changeConnectButtonText("接続"); changeStateLabel("接続していません。"); changeInputFieldEnable(true); changeConnectButtonEnable(true); }
/// <summary> /// 接続ボタンクリック /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private void btnConnection_Click(object sender, EventArgs e) { if (m_TcpClient == null) { string ip = txtIp1.Text + "." + txtIp2.Text + "." + txtIp3.Text + "." + txtIp4.Text; int port = int.Parse(txtPort.Text); m_Address = new SocketInfomation(ip, port); m_TcpClient = new TcpClient(); changeConnectButtonText("中止"); changeStateLabel("接続中..."); changeInputFieldEnable(false); m_StopRequest = new ManualResetEvent(false); m_CommunicationThread = new Thread(new ThreadStart(communicationThread)); m_CommunicationThread.Start(); } else if (m_TcpClient.Connected == false) { m_StopRequest.Set(); m_CommunicationThread.Join(10000); m_StopRequest.Dispose(); m_CommunicationThread = null; m_StopRequest = null; m_TcpClient = null; m_Address = null; changeConnectButtonText("接続"); changeStateLabel("接続していません。"); changeInputFieldEnable(true); } else { changeConnectButtonEnable(false); changeStateLabel("切断中"); DisconnectCommand command = new DisconnectCommand(); command.OnAnalyzed += evDisconnected; m_RequestQueue.Enqueue(command); } }