[問題] Timer 的寫法
我需要寫一個Timer
我本來是用一個tick = sleep(0.01s) 去計算timer經過了多久
每個tick是0.01秒
所以每0.01秒我都能更改 timer 的長度
例如:
timer(3 sec)
extendTime(7 sec)
從3秒延長7秒變成總共10秒
tick結束之前 我也可以 setNewTime去改變timer的時間
例如:
timer(3 sec)
跑了1 sec之後
setNewTime(10s)
所以總共跑了11秒
但是這樣的缺點是
我的timer會不斷的在睡/醒之間做切換去達成timer的計時要求
如果timer數量一多 或是 時間一長 整個CPU就會被拖慢
朋友建議
改成不用tick 而是直接sleep(10秒)
我可以在timer(3s)結束之後 很快的緊接著下一個extendTime(7s)的指令
雖有誤差,但也勉強完成extend的動作,達成總共10s
但是我不想不到該如何在sleep的中途去完成setNewTime這個功能
請板友建議較好的做法
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 204.96.168.3
※ sean72:轉錄至看板 Programming 04/30 08:47
推
04/30 09:23, , 1F
04/30 09:23, 1F
※ 編輯: sean72 來自: 204.96.168.3 (04/30 09:32)
推
04/30 09:32, , 2F
04/30 09:32, 2F
→
04/30 09:33, , 3F
04/30 09:33, 3F
→
04/30 14:12, , 4F
04/30 14:12, 4F
推
04/30 21:33, , 5F
04/30 21:33, 5F
推
05/01 15:18, , 6F
05/01 15:18, 6F
→
05/02 22:57, , 7F
05/02 22:57, 7F
→
05/02 22:58, , 8F
05/02 22:58, 8F
→
05/02 22:59, , 9F
05/02 22:59, 9F
→
05/02 23:00, , 10F
05/02 23:00, 10F