作者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