我使用的SetTimer API,我看到了很多这样的代码:
case WM_DESTROY:
// Destroy the timer.
KillTimer(hwnd, IDT_TIMER);
PostQuitMessage(0);
break;
我必须呼吁进程退出KillTimer函数或系统将自动免费资源? 是否忘记调用KillTimer函数导致资源泄漏?
我明白,如果不需要定时器可以通过KillTimer函数被破坏。 但是,必须将其手动销毁?
从HWNDs设置定时器隐含窗口(HWND)被破坏被破坏。 所以,不,你不必清理你的计时器在窗口退出。
但它是一个很好的做法,有你的所有有关在窗口关闭清理窗口资源。
计时器会自动被Windows的进程退出被破坏。
但要记住,(所以才出现),您的计时器所属的窗口,而不是过程。 所以,如果您的应用程序允许创建和销毁这些窗口的过程中,你会被泄露定时器。
它总是明确地清理东西,否则缺乏清理可以回来以后咬你很好的做法。
根据MSDN,一个应该杀定时器:
应用程序应使用KillTimer函数功能销毁不再需要定时器。 下面的示例破坏由常量IDT_TIMER1,IDT_TIMER2和IDT_TIMER3识别的计时器。
//摧毁计时器。
KillTimer函数(HWND,IDT_TIMER1);
KillTimer函数(HWND,IDT_TIMER2);
KillTimer函数(HWND,IDT_TIMER3);
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644901(v=vs.85).aspx#creating_timer