读书人

小弟我需要将串口通讯的接收放在另外的

发布时间: 2013-08-14 14:27:55 作者: rapoo

我需要将串口通讯的接收放在另外的线程运行,避免界面假死。提高曝光率再发一条。
我目前是直接使用SerialPort1组件在主进程进行通讯,感觉有点堵塞主界面。
在接收的时候界面一卡一卡的,尤其是计时器,停顿一会一次跳好几秒。
请各位大神教我怎么将SerialPort1的接收放在另外的线程。
连发两贴能解决的下面的贴也回回,多点给分。最好有个简单的例子
[解决办法]
看下我以前写的先
http://blog.csdn.net/wuyazhe/article/category/695097
[解决办法]

引用:
Quote: 引用:

你是用的DataReceived的事件处理数据接收的吗?
你的代码是怎么写的?

不是的 我用的readline接收

那建议你用DataReceived事件。
[解决办法]
如果可以避免,那就是又回到你原来的状况:主线程停在那里等待结果,于是就有卡的现象。

你不能提出互相矛盾的要求,既要主线程不卡,又不想采用事件方式。

其实办法是有的,就是在等待的时候调用Application.DoEvents()让主线程消息继续工作。不过我觉得你还是应该学一下异步方式(事件消息方式)编程,就像托控件一样,不能总是只会这一招。

读书人网 >VB Dotnet

热点推荐