문서 (GH_Document)를 나타내는 클래스가 있습니다. GH_Document에는 잠재적으로 위험한 작업을 수행하기 전에 호출되는 AutoSave 메서드가 있습니다. 이 방법은 원본 파일 옆에 자동 저장 파일을 만들거나 덮어 씁니다.C# 자동 저장 정리; 모범 사례?
GH_Document에는 자동 저장 기능으로 만든 모든 파일을 디스크에서 제거하는 DestroyAutoSaveFiles()라는 메서드가 있습니다. 응용 프로그램이 닫히고 문서가 언로드 될 때 문서에서이 메서드를 호출합니다. 그러나 자동 종료 파일이 성공적으로 종료 된 후에도 몇 가지 사례가 누락 된 것으로 보입니다.
이렇게 나에게 생각이 들었다. 이런 상황을 처리하는 가장 좋은 방법은 무엇입니까? 문서가 사라질 수있는 모든 가능한 방법을 추적하고 어디에서나 자동 저장 정리 논리를 추가해야합니까? 또는 IDisposable 구현하고 GH_Document.Dispose() 정리를 수행해야합니까? 또는 GH_Document.Finalize()에서이 작업을 수행해야합니까?
자동 저장 파일을 디스크에 남기고 싶을 때만 응용 프로그램이 중단됩니다. Dispose 및 Finalize는 충돌 사고가 발생해도 호출되지 않도록 보장됩니까?
고마워, Finalize 방식을 거의 배제합니다. 내 응용 프로그램은 관리되지 않는 환경에서 관리되는 플러그인으로 실행되며 처리되지 않은 C++ 예외, 메모리 오버플로 또는 관리되는 예외로 인해 대부분의 충돌이 발생하여 기본 응용 프로그램이 다운됩니다. 사람이 내 앱의 인스턴스를 두 개 이상 실행할 수 있으며 한 인스턴스가 다른 인스턴스에서 자동 저장 파일을 삭제해서는 안되기 때문에 자동 저장 파일을 모두 삭제할 수 없습니다. 또한 사람들은이 '특별'폴더를 찾을 수 없으며 지원에 추가 부담을 둡니다. 나는 방금 방수 처리를해야 할 것 같아. –