Is KillTimer necessary?这似乎是一个重复的问题,但我想用可信来源来证实这一点。
破坏窗口是否真的释放了操作系统为计时器分配的资源? (如果这样的函数确实存在,DestroyWindowsTimers
真的被调用吗?如果是的话,在哪里?)
答案 0 :(得分:6)
不,没有必要。来自DestroyWindow的文档(重点已添加):
该功能会向窗口发送
WM_DESTROY
和WM_NCDESTROY
条消息以停用它并从中移除键盘焦点。该功能还会破坏窗口的菜单,刷新线程消息队列,销毁计时器,删除剪贴板所有权,并中断剪贴板查看器链(如果窗口位于查看器链的顶部) )。
答案 1 :(得分:2)
进行谷歌搜索唯一真正的实际参考它看起来是一些Win2k源代码。网址以/Censorship/win2k_sources/private/.../timers.c
结尾,我假设从source code leak开始。我没有查看代码,也不会在这里发布链接。
该函数很可能存在 - 对于链接到窗口句柄的计时器几乎必须存在 - 因为计时器消息被传递到特定的窗口句柄。
我无法在文档中看到任何声明您不必调用KillTimer
来摆脱计时器的内容。因此,根据记录的合同,您需要致电KillTimer
。在实践中,Windows可能会为您清理它,但由于这是未记录的行为,您应该编写代码以遵循记录的行为并在所有计时器上调用KillTimer
。