2012-07-04 23 views
10

Używam streamwritera w połączeniu z robotem w tle do rejestrowania.Jak mogę sprawdzić, czy scenarzysta jest zamknięty?

Jako takie, mam

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

rzeczy w sposobie DoStuff() podniesienie zdarzenie postępy.

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

Myślę, że to naprawdę pachnie. Jak mogę go ulepszyć, a przynajmniej jak mogę sprawdzić, czy plik logu nie został zamknięty? Jest dużo wiadomości, więc martwię się ciągłym otwieraniem i zamykaniem pliku logu.

Odpowiedz

16

Po zamknięciu StreamWriter właściwość BaseStream zwróci null.

+0

Cool - odpowiada na część techniczną. – Melanie

+0

@Melanie: 'Plik :: AppendText' może być przydatny w twoim przypadku. – leppie

Powiązane problemy