WM_CLOSE上的CreateTimerQueueTimer终止

时间:2018-01-31 17:20:29

标签: c++ winapi timer

我在标题中有这个:

static volatile bool g_operational = true;

然后WM_CLOSE有这个:

g_operational = false;
WaitForSingleObject(TimerDoneEvent , INFINITE);
DeleteTimerQueueEx(t_main , NULL);

计时器回调函数如下所示:

VOID CALLBACK main_timer(PVOID lpParam , BOOLEAN TimerOrWaitFired) {
    // doing stuff
    if ( !g_operational ) 
        SetEvent(TimerDoneEvent);
}

计时器本身正在按照我的预期行事,但问题是将其从WM_CLOSE关闭,发生的事情g_operational设置为false,那么每秒运行的计时器线程应该选择g_operational为假,然后调用SetEvent表示线程已完成,以便WaitForSingleObject可以继续,但在回调函数g_operational内始终保持true,这是为什么?

0 个答案:

没有答案