KillTimer是否必要?

我使用SetTimer API,我看到很多这样的代码:

case WM_DESTROY: // Destroy the timer. KillTimer(hwnd, IDT_TIMER); PostQuitMessage(0); break; 

我是否需要调用KillTimer或者系统会自动释放进程退出的资源? 忘记调用KillTimer导致资源泄漏

我明白,如果不需要定时器,它可以被KillTimer破坏。 但必须手动销毁?

Solutions Collecting From Web of "KillTimer是否必要?"

从HWND设置的定时器被销毁的窗口(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