我有一个代表文档的类(GH_Document)。GH_Document 上有一个 AutoSave 方法,该方法在每次潜在危险操作之前调用。此方法在原始文件旁边创建(或覆盖)一个 AutoSave 文件。
GH_Document 还包含一个名为 DestroyAutoSaveFiles() 的方法,该方法从磁盘中删除由 AutoSave 函数创建的所有文件。当应用程序关闭时,我在文档上调用此方法,以及当文档被卸载时。但是,我似乎错过了一些案例,因为在一些成功关闭后自动保存文件仍然存在。
所以这让我开始思考。处理这种情况的最佳方法是什么?我是否应该追踪文档消失的所有可能方式并在各处添加自动保存清理逻辑?或者我应该实现 IDisposable 并在 GH_Document.Dispose() 中执行清理?或者我应该在 GH_Document.Finalize() 中这样做吗?
我希望自动保存文件保留在磁盘上的唯一一次是应用程序崩溃时。是否保证在发生崩溃时不会调用 Dispose 和 Finalize?