VB多个timer,这么保证同一时间只有一个运行?

thesky102 2013-06-20 07:37:40
我想过每个timer加标志位,timer开始的时候置1,结束时置0。然后每个timer执行开始时先判断其他timer标志位是否有1的情况,如果有,则退出函数。不过这样就跳过了这次的执行,比如10秒触发一次,第20秒如果检测到有别的timer在运行,则退出函数,那这一次就相当于没有操作。我想的是这次timer事件应该延后执行,但不是不执行。
求指导啊~~!!
...全文
528 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
thesky102 2013-06-20
  • 打赏
  • 举报
回复
引用 7 楼 worldy 的回复:
时间间隔由操作系统决定,但定时器是最低优先级,定时不是很准确,然而如果时间间隔不是很短(<30约数),一般还是有一定的准确度
好的,谢啦~
worldy 2013-06-20
  • 打赏
  • 举报
回复
时间间隔由操作系统决定,但定时器是最低优先级,定时不是很准确,然而如果时间间隔不是很短(<30约数),一般还是有一定的准确度
thesky102 2013-06-20
  • 打赏
  • 举报
回复
引用 5 楼 worldy 的回复:
当然有所区别,使用一个定时器比较好控制 你可以定时时间为5s, 定时到执行fun1 然后累计到30 执行fun2 累计到40执行fun3
还有个问题,就是VB中timer执行的时间是不算在时间间隔里的吧?比如timer 10秒触发一次,但是一次执行用了1秒,那下次执行就是在第一次开始执行11秒后?
worldy 2013-06-20
  • 打赏
  • 举报
回复
当然有所区别,使用一个定时器比较好控制 你可以定时时间为5s, 定时到执行fun1 然后累计到30 执行fun2 累计到40执行fun3
thesky102 2013-06-20
  • 打赏
  • 举报
回复
引用 3 楼 worldy 的回复:
哇擦 三个函数分开写,然后按规定的时间顺序在定时器内调用
那跟直接写在timer里面有啥区别? 而且要是三个需要的时间不一样呢? 比如一个40秒,一个5秒,一个30秒
worldy 2013-06-20
  • 打赏
  • 举报
回复
哇擦 三个函数分开写,然后按规定的时间顺序在定时器内调用
thesky102 2013-06-20
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
你到底想干嘛?基于什么目的,很多时候,有一个定时器就足够了,然后各种功能在定时函数内进行处理
定期存取数据,一个timer对应大概100个数据,一个函数里有三个timer,要是我都写在一个timer里面那要一个timer1000+行代码。。。而且三类要求存到SQL的数据时间间隔可能不一样。现在我就是三个timer写的,都是60秒触发一次,但是运行起程序明显感觉卡
worldy 2013-06-20
  • 打赏
  • 举报
回复
你到底想干嘛?基于什么目的,很多时候,有一个定时器就足够了,然后各种功能在定时函数内进行处理

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧