VB 如何实现同时做多个事情

各位高手好,小弟初学菜鸟。我的软件目的:利用VB读取机床信息,然后再进行相关操作。我在读取机床信息过程中发现如下问题:从读取信息到实现操作的延时现象严重(PS:程序中对读... 各位高手好,小弟初学菜鸟。我的软件目的:利用VB读取机床信息,然后再进行相关操作。

我在读取机床信息过程中发现如下问题:从读取信息到实现操作的延时现象严重(PS:程序中对读取的信息处理过程较复杂)。
虽然同时调用不用的timer控件进行处理,但是感觉VB好像并没有同时调用各个timer。请问这是单线程的问题吗?
如果是单线程问题的话,请问是不是该采取多线程(一个线程采集数据,另一个线程处理数据)以提高处理速度?
如果不是单线程问题的话,请问有什么方法可以提高处理数据速度?
谢谢各位高手。
展开
 我来答
money0_04c351c2
2015-01-15 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1613万
展开全部
这个问题比较复杂,不是几十个字能说清楚的。 提两点建议吧:
1、在每个 Timer 的 OnTimer 事件中输出一下时间,最起码要精确到毫秒。
这样你可以通过分析输出的日志清楚的了解到发生延时究竟是在那个部分。
2、读取下位机数据无论是通过串口还是以太网通讯,都应该尽可能的使用事件触发。
以串口通讯为例,在 OnComm 事件中只需将串口的硬件缓冲区的数据读入自己的缓冲区就可以了。
而数据处理部分可以通过 Timer,每100毫秒检测一下缓冲区数据进行处理。
原理说着简单,实现起来往往不那么容易,得因地制宜看具体情况来写。
VB6不能直接支持多线程,VB.net可以。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ba88284
2015-01-14 · TA获得超过1521个赞
知道大有可为答主
回答量:1822
采纳率:73%
帮助的人:580万
展开全部
通过多线程的操作来实现多个操作。
追问
您认为我碰到的这个问题是由于单线程而造成的吗?
追答
是单线程的问题。你这种情况用多线程就比较好。
1、你的这个需要开的线程做的事情是与硬件交互,与软件界面无关,所以适合多线程
2、多线程慎用的原因是多个线程同时访问界面会影响。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式