2012-07-04 3 views
10

Я использую streamwriter в сочетании с фоновым работником для ведения журнала.Как узнать, закрыт ли потоковик?

Таким образом, у меня есть

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(); 
} 

вещи в методе DoStuff() поднять событие прогресса.

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

Я думаю, что это действительно пахнет. Как я могу сделать это лучше, или, по крайней мере, как я могу проверить, что файл журнала не был закрыт? Есть много сообщений, поэтому я обеспокоен открытием и закрытием журнала.

ответ

16

Если StreamWriter не работает, возвращается BaseStreamnull.

+0

Cool - отвечает на техническую часть. – Melanie

+0

@ Melanie: 'Файл :: AppendText' может быть полезен в вашем случае. – leppie

Смежные вопросы