C# 如何检测串口是否失效?

dracoo 2009-11-26 11:10:07
因为使用了USB转RS232接口,在实际应用中,会发生在通信过程中USB接口被碰掉,这时侯Com端口就丢失了。

软件用C#开发,用了SerialPort类,采用事件触发读取端口数据,端口失效后,就再也不会触发读数据事件了,程序也不会有异常反应,直到执行对端口的操作,引发异常,程序down掉。

有什么方法可以解决这个问题吗?
...全文
268 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyazhe 的回复:]
可以考虑看看硬件更改通告消息

在你的程序里,添加MessageFilter或是其他的消息处理,

if (msg == WM_DEVICECHANGE ||
    msg == WM_DEVICEARRVIAL ||
    msg == WM_DEVICEMOVECOMPLETE)
{
    //尝试检查串口
}
[/Quote]
up!~
兔子-顾问 2009-11-26
  • 打赏
  • 举报
回复
可以考虑看看硬件更改通告消息

在你的程序里,添加MessageFilter或是其他的消息处理,

if (msg == WM_DEVICECHANGE ||
msg == WM_DEVICEARRVIAL ||
msg == WM_DEVICEMOVECOMPLETE)
{
//尝试检查串口
}
波导终结者 2009-11-26
  • 打赏
  • 举报
回复
不能捕获异常吗?
mjp1234airen4385 2009-11-26
  • 打赏
  • 举报
回复
2楼的办法可以一试

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧