C #сборщик мусора слишком рано закрывает мой StreamWriter

У меня есть класс регистратора, который является синглтоном. В его деструкторе я вызываю Close (), который печатает нижний колонтитул для журнала, а затем закрывает StreamWriter.

 public void Close()
    {
        WriteLogFileFooter();

        _logFile.Flush();

        _logFile.Close();
    }

Проблема в том, что когда System.Enviornment.Exit (1 )вызывается из других частей программы (, которые я не писал сам ), нижний колонтитул никогда не печатается, и мой регистратор выдает исключение для попытка записи в закрытый поток. Я могу только предположить, что команда Exit вызывает закрытие моего StreamWriter до того, как мой синглтон будет уничтожен. Я пытался использовать GC.SupressFinalize ()на своем StreamWriter, но это не помогло.

6
задан Eric J. 23 July 2012 в 17:23
поделиться