2012-07-04 18 views
10

Estoy usando un secuenciador en combinación con un trabajador en segundo plano, para el registro.¿Cómo puedo saber si un secuenciador está cerrado?

Como tal, he

System::Void 
MyUI::execBWorker_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e) { 

String^ outputPath = _clr::Settings::ApplicationLogPath("_log.txt", true, false); 
logfile_ = gcnew StreamWriter(outputPath,true); 

DoStuff(); 
logfile_->Close(); 
} 

Las cosas en el método DoStuff() provocar el evento Progreso.

System::Void 
MyUI::execBWorker_ProgressChanged(System::Object^ sender, System::ComponentModel::ProgressChangedEventArgs^ e) { 
logfile_->WriteLine("something"); 
} 

Creo que esto realmente huele. ¿Cómo puedo mejorarlo, o al menos cómo puedo verificar que el archivo de registro no se haya cerrado? Hay muchos mensajes, por lo que me preocupa abrir y cerrar continuamente el archivo de registro.

Respuesta

16

Si el StreamWriter está cerrado, la propiedad BaseStream devolverá null.

+0

Cool - responde la parte técnica. – Melanie

+0

@Melanie: 'File :: AppendText' puede ser útil en su caso. – leppie

Cuestiones relacionadas