我的应用是通过串口处理通信。我的问题是它有可能从计算机上拔下通信电缆。
我使用USB转串口电缆,这意味着如果他们从计算机上拔下COM端口消失。每次丢失一个COM端口时,我都可以重新启动服务(读取应用程序是一个Windows服务),但是检测新连接的配置并不像它可能的那样快:
SerialPort.GetPortNames()
我以为我会让应用程序继续阅读;一旦有人插回电缆,就会再次看到该服务。 当我这样做时,我不断收到这样的错误:
类型' system.invalidoperationexception'的第一次机会异常发生在system.dll
中我有两个不同的位置,当我在没有comport存在的情况下读取时会遇到异常:
//sp is the disconnected serial port
sp.DiscardOutBuffer();
sp.Open();
即使抓住异常我的应用程序仍然崩溃,而且我没有来源来确定错误的位置。
我想我会停止并重新启动我的服务,我只是想我会问你的意见,因为你可能有更好的解决方案。
编辑: 我不会说这是标记问题的重复,因为它仍然没有告诉我为什么我得到例外。或者我错了吗?