我需要暂停使用Win32 API的CreateTimerQueueTimer函数创建的计时器,但是我找不到暂停计时器的方法。 有人知道这是否可能吗?
答案 0 :(得分:5)
我相信您可以调用ChangeTimerQueueTimer并将_In_ ULONG Period
设置为0。其中_In_opt_ HANDLE TimerQueue
参数为NULL
,而_Inout_ HANDLE Timer
为HANDLE从CreateTimerQueueTimer中检索。这将仅在计时器中执行一次回调并停止。如果要重新激活计时器,则可以使用相同的句柄再次ChangeTimerQueueTimer
,以提供大于0的周期来定期运行。没有专门用于暂停计时器的API,但是在您的情况下,阻止计时器定期运行应该等效。请注意,在挂起之前调用ChangeTimerQueueTimer
后,您的回调将被触发一次。