2 zxzr1990 zxzr1990 于 2017.09.19 14:29 提问

【求问】C# WPF 串口丢失卡死问题

接触C#一个月,正在写一个串口接收数据绘图的软件。
发现串口意外断开后程序卡死,必须要从任务管理器才能关闭。
VS上也没有任何报错,就是卡在那里不动。
分析时间线看卡死的那一段什么任务都没有执行。。

程序的大概是用DispatcherTimer做无限循环,
串口接收来的数据放进Queue里面然后用OXYplot绘图。

请问有什么方法可以看到程序卡在哪里了吗?
或者说有没有类似经历的解决办法?谢谢!!

2个回答

song8870
song8870   2017.09.20 16:30

目测断开了,串口监听进入死循环,等一段时间,应该会报出异常,类似超时,断开的异常,建议逐步下断点,手动断开串口,看看在哪段代码上卡死,对该代码进行异常捕捉和处理

zxzr1990
zxzr1990   2017.10.06 09:46

找到了。因为读取串口用的readline,断开之后readline一直在等换行符来,就卡死了 。
加上readtimeout就好了。

Csdn user default icon
上传中...
上传图片
插入图片