完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
查了一下stackoverflow,这个可以说是一个bug,也可以说是一个特性,原文如下: It's not a bug. The only reason it would hang when you close it is because in the event handler of your SerialPort object, you're synchronizing a call with the main thread (typically by calling invoke). SerialPort's close method waits for its EventLoopRunner thread which fires DataReceived/Error/PinChanged events to terminate, but since your own code in the event is also waiting for main thread to respond, you run into a dead lock situation. The reason the bug report was closed 'as designed' is because the 'bug' is in your own code. 大概意思就是同步调用时由于要响应事件循环,因此等待时间就会比较长,解决方法就是新开一个线程,不要在主线程(界面UI)中调用close方法,对应的labview写法当然是异步调用了,即把close这一段封装成一个子VI,然后进行异步调用。 如下图所示: 评分 |
|
2 条评论
|
|
你的版本太高了,我的2017都没法打开,在论坛上问问题,请尽量将附件vi转成较低的版本,方便大家,也方便自己。
|
|
|
|
问题出在C#serialport类的close方法会造成线程死锁会卡,但是不知道怎么解决!
|
|
|
|
用了nuget的serialportstream,原来2,30秒的等待变成7,8秒了,但还是大!
|
|
|
|
用了nuget的serialportstream可以了,可能是上次测试是参数设错了!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1145 浏览 1 评论
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
2024 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1646 浏览 0 评论
1839 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
4379 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 22:50 , Processed in 0.853036 second(s), Total 95, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号