[問題] Timer的觀念及問題

看板C_and_CPP (C/C++)作者 (keep walking)時間16年前 (2009/05/14 12:38), 編輯推噓0(0012)
留言12則, 3人參與, 最新討論串1/1
最近在用Win32 API寫視窗程式,程式中有用到timer 有以下問題: 1.若中途我想改變timer的time-out value,可以直接更改這個值嗎 還是我得先KillTimer,然後再重新SetTimer? 2.承上,不知道timer內部是如何運作,若time-out value設極小 若我KillTimer之後是否會有殘存在message queue的"舊timer訊息"? 還是只要kill之後,該timer的所有相關運作會完全停止呢 3.SetTimer這個函式的time-out value是以milliseconds為單位 是否有辦法設更小的數值呢 (小於 1 ms) 以上問題,謝謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.99.98.178

05/14 13:35, , 1F
1. 直接 SetTimer 即可。
05/14 13:35, 1F

05/14 13:36, , 2F
2. 理論上他是 time-out 之後 PostMessage 給你...
05/14 13:36, 2F

05/14 13:36, , 3F
所以 KillTimer 之後就不會觸發 time-out 而 PostMessage
05/14 13:36, 3F

05/14 13:37, , 4F
但是你的 time-out value 極小,很難確保他已經 Post 給出
05/14 13:37, 4F

05/14 13:38, , 5F
去了,你才 KillTimer。自己再判斷一次比較保險。
05/14 13:38, 5F

05/14 13:38, , 6F
3. 無法。其實你 time-out 設 10 和 設 50 幾乎沒什麼差
05/14 13:38, 6F

05/14 13:39, , 7F
因為這也關係著 cpu clock time
05/14 13:39, 7F

05/14 15:15, , 8F
clock time遠小於1ms好不好 設很小的timeout無效的原因
05/14 15:15, 8F

05/14 15:15, , 9F
是這樣會小於kernel的反應時間
05/14 15:15, 9F

05/14 15:15, , 10F
包括I/O wait, 和kernel overnead
05/14 15:15, 10F

05/14 20:42, , 11F
謝謝~ 以上大致上都有解答我的疑問了 ^^
05/14 20:42, 11F

05/15 00:08, , 12F
抱歉錯字,kernel overhead
05/15 00:08, 12F
文章代碼(AID): #1A2w1F-4 (C_and_CPP)
文章代碼(AID): #1A2w1F-4 (C_and_CPP)