我有一个单例记录器类。在它的析构函数中,我调用 Close() 打印日志的页脚,然后关闭 StreamWriter。
public void Close()
{
WriteLogFileFooter();
_logFile.Flush();
_logFile.Close();
}
问题是当 System.Enviornment.Exit(1) 从程序的其他地方(我自己没有编写的部分)调用时,页脚永远不会打印,并且我的记录器会抛出一个尝试写入封闭流的异常。我只能假设 Exit 命令导致我的 StreamWriter 在我的 Singleton 被破坏之前关闭。我尝试在我的 StreamWriter 上使用 GC.SupressFinalize() 但这似乎没有帮助。