У меня есть класс регистратора, который является синглтоном. В его деструкторе я вызываю Close (), который печатает нижний колонтитул для журнала, а затем закрывает StreamWriter.
public void Close()
{
WriteLogFileFooter();
_logFile.Flush();
_logFile.Close();
}
Проблема в том, что когда System.Enviornment.Exit (1 )вызывается из других частей программы (, которые я не писал сам ), нижний колонтитул никогда не печатается, и мой регистратор выдает исключение для попытка записи в закрытый поток. Я могу только предположить, что команда Exit вызывает закрытие моего StreamWriter до того, как мой синглтон будет уничтожен. Я пытался использовать GC.SupressFinalize ()на своем StreamWriter, но это не помогло.