作者xxocean (keep walking)
看板C_and_CPP
標題[問題] Timer的觀念及問題
時間Thu May 14 12:38:38 2009
最近在用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
1F:→ qazq:1. 直接 SetTimer 即可。 05/14 13:35
2F:→ qazq:2. 理論上他是 time-out 之後 PostMessage 給你... 05/14 13:36
3F:→ qazq: 所以 KillTimer 之後就不會觸發 time-out 而 PostMessage 05/14 13:36
4F:→ qazq: 但是你的 time-out value 極小,很難確保他已經 Post 給出 05/14 13:37
5F:→ qazq: 去了,你才 KillTimer。自己再判斷一次比較保險。 05/14 13:38
6F:→ qazq:3. 無法。其實你 time-out 設 10 和 設 50 幾乎沒什麼差 05/14 13:38
7F:→ qazq: 因為這也關係著 cpu clock time 05/14 13:39
8F:→ MOONRAKER:clock time遠小於1ms好不好 設很小的timeout無效的原因 05/14 15:15
9F:→ MOONRAKER:是這樣會小於kernel的反應時間 05/14 15:15
10F:→ MOONRAKER:包括I/O wait, 和kernel overnead 05/14 15:15
11F:→ xxocean:謝謝~ 以上大致上都有解答我的疑問了 ^^ 05/14 20:42
12F:→ MOONRAKER:抱歉錯字,kernel overhead 05/15 00:08