這似乎是Is KillTimer necessary?的重複問題,但我想確認這與可信來源。KillTimer真的有必要嗎?
破壞窗口是否真的釋放了操作系統爲定時器分配的資源? (如果真的存在DestroyWindowsTimers
真的會被稱爲別的,如果這樣的功能真的存在嗎?)
這似乎是Is KillTimer necessary?的重複問題,但我想確認這與可信來源。KillTimer真的有必要嗎?
破壞窗口是否真的釋放了操作系統爲定時器分配的資源? (如果真的存在DestroyWindowsTimers
真的會被稱爲別的,如果這樣的功能真的存在嗎?)
不,不是必須的。從DestroyWindow的文件(與強調):
的函數發送
WM_DESTROY
和WM_NCDESTROY
消息到窗口停用它並從中取出鍵盤焦點。該功能還銷燬窗口的菜單,刷新線程消息隊列,銷燬定時器,刪除剪貼板所有權,並打破剪貼板查看器鏈(如果窗口位於查看器鏈的頂部)。
做一個谷歌搜索唯一真實的外觀引用看起來是一些Win2k的源代碼。網址以/Censorship/win2k_sources/private/.../timers.c
結尾,我假設從source code leak回來。我沒有看代碼,也不會在這裏發佈鏈接。
該函數很可能存在 - 對於鏈接到窗口句柄的定時器幾乎不得不存在的東西 - 因爲定時器消息被傳遞到特定的窗口句柄。
我看不到在文檔中的任何地方,你不必撥打KillTimer
擺脫計時器。因此,根據記錄的合同,您需要致電KillTimer
。在實踐中,Windows可能會爲您清理它,但由於這是無證行爲,因此您應該編寫代碼以遵循記錄的行爲,並在所有定時器上調用KillTimer
。