VB timer控件的时间间隔的控制?

该过程的目的:间隔10ms扫描端口数据的变化,当变化发生时,执行Drawing过程。现在想问,当检测到变化后,Drawing要执行30ms,那这30ms的时间里,Time... 该过程的目的:间隔10ms扫描端口数据的变化,当变化发生时,执行Drawing过程。
现在想问,当检测到变化后,Drawing要执行30ms,那这30ms的时间里,Timer1怎么工作?是在10ms的时间点上打断Draming过程,转而重复执行扫描?还是等Drawing的执行时间30ms完后,再重复执行扫描?

Private Sub Timer1_Timer() ’设置Timer1的Interval为10ms
....
....省略部分为读取端口数据的变化,该部分执行时间小于1ms

If (变化发生) Then Drawing ‘Drawing过程的时间较长,大约30ms
End Sub
展开
 我来答
zdingyun
推荐于2016-07-21 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48172
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
1)系统每秒生成 18 个时钟信号— 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。(即55ms一次) ,LZ你设置10ms是达不到的.
2)如果你是在Timer控件的Timer事件中触发执行Drawing过程,而Drawing过程耗时30ms的话,Timer控件的触发Timer事件的周期包含30ms在内.
3)程序是一步步执行的,显然在Timer事件中触发执行Drawing过程且完成该过程后再有新的Timer事件的周期开始.

http://topic.csdn.net/u/20091203/14/ecb720d7-0380-4090-b2da-e7569a6bcffd.html
http://topic.csdn.net/u/20081225/17/b33f4b7d-c391-4d32-8ef6-db8d1d587d0d.html
以上链接有相关讨论.
244326867
推荐于2018-04-11 · TA获得超过343个赞
知道小有建树答主
回答量:423
采纳率:0%
帮助的人:296万
展开全部
在执行到 End Sub 或其他退出sub代码之前是不计算到 Interval 间隔里的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ca1c0f24
2010-01-12 · TA获得超过2036个赞
知道大有可为答主
回答量:4364
采纳率:0%
帮助的人:3407万
展开全部
Drawing过程的开始设置:
Timer1.Enabled = False
Timer1.Enabled = True
Timer1.Interval = 30
Drawing过程结束时设置:
Timer1.Enabled = False
Timer1.Enabled = True
Timer1.Interval = 10
'使If (变化发生) Then 不满足条件,我不知道你的(变化发生)是什么。

或直接:
Drawing过程的开始设置:
Timer1.Enabled = False
Drawing过程结束时设置:
Timer1.Enabled = True
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-01-11
展开全部
当然是执行完Drawing再执行扫描了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式