为什么要从定时器回调中终止定时器?
Why kill a timer from within the timer callback?
Raymondexample关于如何使用SetTimer
区分单击和双击,他在定时器回调函数中调用了KillTimer
。我不清楚为什么有必要这样做。回调正在发生的事实是否意味着计时器已到达其终点?
计时器以指定的频率重复触发。如果您希望他们停止开火,您必须致电 KillTimer
。
所以一个经典的用法是创建一个定时器,然后在它第一次触发时杀死它。这就是所谓的一次性计时器。
奇怪的是,SetTimer 的文档没有记录其行为。行为是调用安装一个自动重复计时器。
但是,您会在 timer operations 下找到以下内容:
Whenever the time-out value for the timer elapses, the system posts a WM_TIMER message to the window associated with the timer.
此 API 不立即支持一次性计时器。要实现一次性计时器,您必须在处理第一条 WM_TIMER
消息时调用 KillTimer。
Raymondexample关于如何使用SetTimer
区分单击和双击,他在定时器回调函数中调用了KillTimer
。我不清楚为什么有必要这样做。回调正在发生的事实是否意味着计时器已到达其终点?
计时器以指定的频率重复触发。如果您希望他们停止开火,您必须致电 KillTimer
。
所以一个经典的用法是创建一个定时器,然后在它第一次触发时杀死它。这就是所谓的一次性计时器。
奇怪的是,SetTimer 的文档没有记录其行为。行为是调用安装一个自动重复计时器。
但是,您会在 timer operations 下找到以下内容:
Whenever the time-out value for the timer elapses, the system posts a WM_TIMER message to the window associated with the timer.
此 API 不立即支持一次性计时器。要实现一次性计时器,您必须在处理第一条 WM_TIMER
消息时调用 KillTimer。