举个生动点的例子,假如我现在让小明定时做俯卧撑,每次做50个,但是他每次做完的时间可能不一样,我想让他每做完50个俯卧撑以后,休息一分钟,然后再做50个,而不是从第一次开始做俯卧撑以后,立即开始计时,而是等他50个做完了以后再计时
在timer_tick中先timer.enable = false,等函数执行完再timer.enable = true,这种方式在我的实际函数逻辑中不太完美,其实内部的情况有很多种,不同情况休息时间也不一样,有没其他办法
感觉需求有点像死循环,如果用sleep的话不知道好不好,我这是个windows服务
设置timer_tick一秒触发一次。
触发的事件是询问当前是否是需要做50个俯卧撑的时间。
如果需要,就启动做50个俯卧撑,做完后,更新下次要做俯卧撑的时间。
跟我想的一样啦,就这样办,设置一个变量,当有一批(50个俯卧撑要做的时候),执行timer,然后把任务抛给线程池,线程池执行完一个俯卧撑-1,timer判断当剩余俯卧撑为0时,再执行,否则sleep
需求不明;
简单:完成行为后后阻塞变量时间即可(比如直接的方式当前线程直接睡变量时间);
并发:为每个实例保存一个Interval变量,用一个时钟计数器以固定刻度(看自己需求)进行累加,到该变量进行Invoke即可。(该模式可参见cpu线程就是类似概念,或者game也是这种概念,或者n早的串口键盘)
先不考虑并发,单纯是简单方式,timer的计时是从触发事件就开始,睡影响不到计时啊