首页 新闻 会员 周边

求助Timer间隔问题

0
[已解决问题] 解决于 2016-11-08 17:34

举个生动点的例子,假如我现在让小明定时做俯卧撑,每次做50个,但是他每次做完的时间可能不一样,我想让他每做完50个俯卧撑以后,休息一分钟,然后再做50个,而不是从第一次开始做俯卧撑以后,立即开始计时,而是等他50个做完了以后再计时

在timer_tick中先timer.enable = false,等函数执行完再timer.enable = true,这种方式在我的实际函数逻辑中不太完美,其实内部的情况有很多种,不同情况休息时间也不一样,有没其他办法

感觉需求有点像死循环,如果用sleep的话不知道好不好,我这是个windows服务

MSky的主页 MSky | 菜鸟二级 | 园豆:436
提问于:2016-11-07 14:40
< >
分享
最佳答案
0

设置timer_tick一秒触发一次。

触发的事件是询问当前是否是需要做50个俯卧撑的时间。

如果需要,就启动做50个俯卧撑,做完后,更新下次要做俯卧撑的时间。

奖励园豆:5
盟怀部孩 | 小虾三级 |园豆:878 | 2016-11-08 15:20

 跟我想的一样啦,就这样办,设置一个变量,当有一批(50个俯卧撑要做的时候),执行timer,然后把任务抛给线程池,线程池执行完一个俯卧撑-1,timer判断当剩余俯卧撑为0时,再执行,否则sleep

MSky | 园豆:436 (菜鸟二级) | 2016-11-08 17:33
其他回答(1)
0

需求不明;

简单:完成行为后后阻塞变量时间即可(比如直接的方式当前线程直接睡变量时间);

并发:为每个实例保存一个Interval变量,用一个时钟计数器以固定刻度(看自己需求)进行累加,到该变量进行Invoke即可。(该模式可参见cpu线程就是类似概念,或者game也是这种概念,或者n早的串口键盘)

花飘水流兮 | 园豆:13560 (专家六级) | 2016-11-07 15:32

 先不考虑并发,单纯是简单方式,timer的计时是从触发事件就开始,睡影响不到计时啊

支持(0) 反对(0) MSky | 园豆:436 (菜鸟二级) | 2016-11-08 13:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册