winapi - CWnd::KillTimer 失败,当我在主线程中启动两个具有相同时间间隔的计时器时
问题描述
我对如何在MFC
应用程序中停止计时器感到困惑。
我在主线程中同时使用SetTimer(2, 1000, NULL)
和。SetTimer(3, 1000, NULL)
中间有一些加载和上传任务,当任何计时器(2 或 3)完成时,我只需同时调用CWnd::Killtimer(2)
和CWnd::Killtimer(3)
。
但是,即使 Killtimer 成功,程序也只是执行代码,就好像仍然设置了计时器一样。即使 m_bIsRunning 实际上是假值if(true == m_bIsRunning)
,位于函数中的条件代码也会失败。CWnd::OnTimer
解决方案
MSDN状态(SetTimer 函数):
返回值
类型:
类型:UINT_PTR
如果函数成功并且 hWnd 参数为 NULL,则返回值是一个标识新计时器的整数。应用程序可以将此值传递给 KillTimer 函数以销毁计时器。
您应该将这些返回值而不是 2 和 3 传递给 KillTimer()
推荐阅读
- deep-learning - 神经网络:时代和批量大小
- javascript - 复制一个对象数组并对一些项目进行排序
- mongodb - mongodb查询以将子文档显示为主文档并使用它进行分页
- python - 使用 Python 下载并安装 .exe 文件
- xml - 如何在 SonarQube 中为 XML 创建自定义规则?
- javascript - 为什么我只从 map 函数中收到一个值?
- python-3.x - 在序列化之前更改信息
- android - firebase实时cli下载字节和firebase控制台下载字节不匹配
- java - 设置构造函数和数组列表以接受多个参数 (Java)
- java - 在 Java 中的自定义注释中组和有效负载的用途是什么?