对,用串口测试工具,打开关闭都没有问题
已经新建一个项目测试 问题一模一样,直接关闭就窗体假死,但是假死概率会低点,大概三次假死两次,放在整个项目里的话,几乎每次都假死
如果不关闭串口,直接关掉系统 就报错 通用技术平台已关闭
这个新建的项目就是不写任何处理代码,接收代码的,还是一样的问题。。。。。
不知道是不是网上这种说法
点击界面“关闭”按钮调用SerialPort实例的Close()方法,UI线程会在lock(stream)处一直等待辅助线程释放stream的线程锁。
当辅助线程处理完数据准备更新界面时问题来了,DataReceived事件处理程序中的this.Invoke()一直会等待UI线程来执行委托,但此时UI线程还停在SerialPort实例的Close()方法处等待DataReceived事件处理程序执行完成。
此时,线程死锁发生,两边都执行不下去了。
https://blog.csdn.net/chinaherolts2008/article/details/111112481