私のクラスの 1 つは、アプリケーションの実行中に統計を収集し、アプリケーションの終了時にこの統計をディスクに保存したいと考えています。プログラム内でこのクラスを破棄することは決してないので、次のようにログをファイルに保存しようとしました:
~Strategy()
{
foreach(var item in statisticItems)
{
log.WriteLine(item.Text); // log is AutoFlush
}
}
ただし、表示されるはずのログが表示されず、デストラクタが呼び出されたときにデバッガーの瞬間を「キャッチ」することもできません。
質問:
- デストラクタが呼び出された瞬間をデバッガでキャッチできないのはなぜですか? プログラムが終了したら、すべてのオブジェクトに対してデストラクタを呼び出す必要がありますか?
- 自分のものをログに記録するには何を使用すればよいですか?