请先阅读Timers Tutorial
补充说明:
使用Standard Win32 Timers,如果程序在GUI上消耗时间比较多,那么定时器会严重不准。比如,在我的程序中,如果用户一直按住键盘的某个键不放,那么定时器根本没有时间执行。
也就是因为这个原因,我才使用其他定时器。
先用Queue Timers,尽管我下载了PSDK,也#define _WIN32_WINNT 0x0500了,还是有问题。
所以,只得用Multimedia Timers。
需要注意,为了避免timeKillEvent之后仍然触发定时器事件(很有可能:比如timeKillEvent之后,处理生效时间大于定时器周期,则会再次触发),timeSetEvent时需要加上TIME_KILL_SYNCHRONOUS。
MSDN的原文说:Creating an event with the TIME_KILL_SYNCHRONOUS and the TIME_CALLBACK_FUNCTION flag prevents the event from occurring after the timeKillEvent function is called.
不过,郁闷的是,TIME_KILL_SYNCHRONOUS在mmsystem.h中没有定义。Google了一下: #define TIME_KILL_SYNCHRONOUS 0x100 。(对吗?)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment