KillTimer()は、必ずしも呼ばなくてもよい?

[戻る]
しん 2005/03/29(火) 20:38:48
WIN32APIのKillTimer()は、必ずしも呼ぶ必要は無いのでしょうか?
MSDNには、必ず必要とはありませんでした。
又、あるサンプルコードを読んだら、KillTimer()は呼ばれていませんでした。

従って、そのタイマを起動させたプロセス(もしくは窓?)の破棄時に、
自動的にタイマも破棄されるのかな?と推測しました。

どうぞ宜しくお願い致します。

KING・王 2005/03/30(水) 08:13:17
必要ないのかどうかは分かりませんが、Timerを作成(?)しておいて、
KillTimer()を呼ばないのは、行儀の悪いプログラムだと思います。

私としては、出来る限り自分で後始末を行うのがよいかと。

このようなことに慣れてしまうと、ついついnewやmallocで作成したメモリの解放も、
忘れてしまうような気がします。

また、将来のプログラム変更においても、問題が発生する可能性もあるので、
やはり基本的には、後始末も必ず記述するほうがよいと思います。

サンプルコードに関しては、その出典が分かりませんが、インターネット上で公開されているソ
ースコードや、
たまには本などに掲載されているコードにも間違いはあります。
そのサンプルコードで書かれていないから、書く必要がないと考えるのはあまりよろしくないと
思います。

しん 2005/04/04(月) 22:13:15
[[解決]]
KING・王さん、有難うございます。

>行儀の悪いプログラムだと思います。
そうですね。今回の件は、行儀が悪い事になるのか否かを判断する為に質問させて頂いた
訳です。

が、MSDNに書かれてなかったり明確な反対意見が出ない所を見ると、どうやらWindowsが
破棄してくれると思っていいかもしれませんね。
「基本的には破棄コードが必要だが、寿命の短いテストコードでは厳格性は不要」と考え
る事に致します。

お世話様でした。

ボコノン教徒 2005/04/05(火) 09:48:30
はっきりと確認したわけではないのだが、
プログラの終了処理(たとえばリソースの開放)とタイマーの
起動が重なることがあるらしく、プログラム終了時にエラーダ
イアログが表示されたりすることがたまにあるので、タイマー
終了処理はきちっと順序良く入れたほうがいいです。

しん 2005/04/05(火) 11:13:24
>プログラム終了時にエラーダイアログが表示されたりすることがたまにある
そんな事があるんですね。私は一度も経験ないです。

>タイマー終了処理はきちっと順序良く入れたほうがいい
なるほど。よくわかりました。

どうもありがとうございました。

古いスレッドには追加発言できません。