これはIs KillTimer necessary?の重複した質問と思われるかもしれませんが、私はこれをという信憑性のあるソースで確認したいと思います。KillTimerは本当に必要ですか?
破棄ウィンドウは、実際にタイマによって割り当てられたリソースを解放しますか? (DestroyWindowsTimers
は本当にそのような機能が実際に存在するのであれば、実際には呼ばれていますか?)
これはIs KillTimer necessary?の重複した質問と思われるかもしれませんが、私はこれをという信憑性のあるソースで確認したいと思います。KillTimerは本当に必要ですか?
破棄ウィンドウは、実際にタイマによって割り当てられたリソースを解放しますか? (DestroyWindowsTimers
は本当にそのような機能が実際に存在するのであれば、実際には呼ばれていますか?)
いいえ、必要ありません。 DestroyWindowのドキュメント(強調して追加された)から:
機能は、それを無効にし、それからキーボードフォーカスを削除するには、ウィンドウに
WM_DESTROY
とWM_NCDESTROY
メッセージを送信します。この関数はウィンドウのメニューも破棄し、スレッドメッセージキューをフラッシュします。はタイマを破棄し、クリップボードの所有権を削除し、クリップボードビューアチェーンを破棄します(ウィンドウがビューアチェーンの先頭にある場合)。
Google検索では、実際の見た目だけがWin2kのソースコードです。 URLは/Censorship/win2k_sources/private/.../timers.c
で終了しましたが、私はsource code leakから戻ってくると仮定しています。私はコードを見ていなかったし、ここにリンクを投稿することもしなかった。
この機能は、タイマーメッセージが特定のウィンドウハンドルに配信されるため、ウィンドウハンドルにリンクされたタイマーにはほとんど存在する必要があります。
タイマーを取り除くためにKillTimer
に電話する必要はないと書かれている場所はありません。したがって、文書化された契約に基づいて、KillTimer
に電話する必要があります。実際には、おそらくWindowsはあなたのためにそれをクリーンアップしますが、それは文書化されていない動作なので、文書化された動作に従うようにコードを記述し、すべてのタイマーでKillTimer
に電話する必要があります。