CWnd::KillTimer 失败,当我在主线程中以相同的时间间隔启动两个计时器时



我对如何在应用程序中停止计时器感到困惑MFC

我在维护面中同时使用SetTimer(2, 1000, NULL)SetTimer(3, 1000, NULL)。中间有一些加载和上传任务,当任何计时器(2 或 3(完成时,我只是同时调用CWnd::Killtimer(2)CWnd::Killtimer(3)

但是,即使 Killtimer 成功,程序也只是执行代码,就好像计时器仍然设置一样。位于函数CWnd::OnTimerif(true == m_bIsRunning)条件代码失败,即使m_bIsRunning实际上具有 false 值。

MSDN 状态(SetTimer 函数(:

返回值

类型:

类型: UINT_PTR

如果函数成功且 hWnd 参数为 NULL,则返回 值是标识新计时器的整数。应用程序可以通过 此值到 KillTimer 函数以销毁计时器。

你应该将这些返回的值而不是 2 和 3 传递给 KillTimer((