【发布时间】:2012-11-16 00:12:06
【问题描述】:
我有一个打开的SerialPort 并通过DataReceived 事件接收数据。
有什么方法可以检测SerialPort 是否断开连接?
我尝试了ErrorReceived 和PinChanged 事件,但没有成功。
除此之外,SerialPort.IsOpen 在物理断开连接时返回 true。
【问题讨论】:
-
这是一个 USB 串行适配器吗?
-
@Matt 是的,它是一个 USB 串行适配器。谢谢。
-
这不值得麻烦,大多数 USB 驱动程序处理这个非常很差。它们只会使整个设备消失,即使您在其上打开了一个手柄。这往往会很糟糕,工作线程中无法捕获的异常很常见。或者最糟糕的一种,驱动程序甚至不允许您关闭端口,需要重新启动。与在 Windows 写入闪存驱动器时抽出闪存驱动器相同的智慧:不要这样做。使用“安全删除硬件”,对话框应提示用户关闭您的程序。