ドキュメントを表すクラス(GH_Document)があります。GH_Documentには、潜在的に危険なすべての操作の前に呼び出されるAutoSaveメソッドがあります。このメソッドは、元のファイルの横にAutoSaveファイルを作成(または上書き)します。
GH_Documentには、AutoSave関数によって作成されたすべてのファイルをディスクから削除するDestroyAutoSaveFiles()というメソッドも含まれています。このメソッドは、アプリが終了したとき、およびドキュメントがアンロードされたときにドキュメントに対して呼び出します。ただし、シャットダウンが成功した後もAutoSaveファイルがまだ存在しているため、いくつかのケースを見逃したようです。
だから、これは私に考えさせました。このような状況を処理するための最良の方法は何ですか?ドキュメントが消える可能性のあるすべての方法を追跡し、自動保存クリーンアップロジックをどこにでも追加する必要がありますか?または、IDisposableを実装し、GH_Document.Dispose()でクリーンアップを実行する必要がありますか?または、GH_Document.Finalize()でこれを行う必要がありますか?
自動保存ファイルをディスクに残したいのは、アプリケーションがクラッシュした場合だけです。クラッシュが発生した場合にDisposeとFinalizeが呼び出されないことが保証されていますか?