2011-12-04 25 views
5

これはIs KillTimer necessary?の重複した質問と思われるかもしれませんが、私はこれをという信憑性のあるソースで確認したいと思います。KillTimerは本当に必要ですか?

破棄ウィンドウは、実際にタイマによって割り当てられたリソースを解放しますか? (DestroyWindowsTimersは本当にそのような機能が実際に存在するのであれば、実際には呼ばれていますか?)

答えて

6

いいえ、必要ありません。 DestroyWindowのドキュメント(強調して追加された)から:

機能は、それを無効にし、それからキーボードフォーカスを削除するには、ウィンドウにWM_DESTROYWM_NCDESTROYメッセージを送信します。この関数はウィンドウのメニューも破棄し、スレッドメッセージキューをフラッシュします。はタイマを破棄し、クリップボードの所有権を削除し、クリップボードビューアチェーンを破棄します(ウィンドウがビューアチェーンの先頭にある場合)。

2

Google検索では、実際の見た目だけがWin2kのソースコードです。 URLは/Censorship/win2k_sources/private/.../timers.cで終了しましたが、私はsource code leakから戻ってくると仮定しています。私はコードを見ていなかったし、ここにリンクを投稿することもしなかった。

この機能は、タイマーメッセージが特定のウィンドウハンドルに配信されるため、ウィンドウハンドルにリンクされたタイマーにはほとんど存在する必要があります。

タイマーを取り除くためにKillTimerに電話する必要はないと書かれている場所はありません。したがって、文書化された契約に基づいて、KillTimerに電話する必要があります。実際には、おそらくWindowsはあなたのためにそれをクリーンアップしますが、それは文書化されていない動作なので、文書化された動作に従うようにコードを記述し、すべてのタイマーでKillTimerに電話する必要があります。

関連する問題