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 展开
现在想问,当检测到变化后,Drawing要执行30ms,那这30ms的时间里,Timer1怎么工作?是在10ms的时间点上打断Draming过程,转而重复执行扫描?还是等Drawing的执行时间30ms完后,再重复执行扫描?
Private Sub Timer1_Timer() ’设置Timer1的Interval为10ms
....
....省略部分为读取端口数据的变化,该部分执行时间小于1ms
If (变化发生) Then Drawing ‘Drawing过程的时间较长,大约30ms
End Sub 展开
4个回答
推荐于2016-07-21 · 知道合伙人软件行家
关注
展开全部
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
以上链接有相关讨论.
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
以上链接有相关讨论.
展开全部
在执行到 End Sub 或其他退出sub代码之前是不计算到 Interval 间隔里的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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再执行扫描了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询