我有通过串口和以太网连接控制器的应用程序。控制器不断地将数据投到PC机上。我正在用C#编写应用程序。我在SerialPort对象中创建了c#,并在dataReceived方法中接收了数据。类似地,对于以太网,我使用了TCPListener及其方法startAcceptClient来接受来自客户端的连接。
现在,我的问题是,如果控制器关闭或电缆从PC上移除,如何在应用程序中检测这些事件?
发布于 2018-01-31 14:47:13
我不太熟悉TCPListener,但是对于SerialPort,我使用一个计时器,每次滴答我都会检查端口是否仍然打开
private void ComTimer_Tick(object sender, EventArgs e)
{
if (SerialPort.IsOpen)
{
dostuff
}
else if (!SerialPort.IsOpen)
{
ComCheckTimer.Stop();
MessageBox.Show("Connection lost");
}
}
还有计时器
ComCheckTimer = new Timer();
ComCheckTimer.Tick += new EventHandler(ComTimer_Tick);
ComCheckTimer.Interval = 1000;
这将创建一个每1000毫秒计时一次的计时器。
https://stackoverflow.com/questions/48441055
复制相似问题