El recolector de basura de C # parece estar cerrando mi StreamWriter demasiado pronto

Tengo una clase de registrador que es un singleton. En su destructor, llamo a Close () que imprime el pie de página para el registro y luego cierra el StreamWriter.

 public void Close()
    {
        WriteLogFileFooter();

        _logFile.Flush();

        _logFile.Close();
    }

El problema es cuando se llama a System.Enviornment.Exit (1) desde otra parte del programa (partes que no escribí yo mismo), el pie de página nunca se imprime y mi registrador lanza una excepción al intentar escribir en un flujo cerrado. Solo puedo asumir que el comando Salir hace que mi StreamWriter se cierre antes de que se destruya mi Singleton. Intenté usar GC.SupressFinalize () en mi StreamWriter pero eso no pareció ayudar.

Respuestas a la pregunta(5)

Su respuesta a la pregunta