2012-07-04 17 views
10

Kayıt için arka plan işçisiyle birlikte bir akış yazıcısı kullanıyorum.Bir yazarın kapatılıp kapatılmadığını nasıl anlarım?

Gibi, ben DoStuff() yöntemine İlerleme olay yükseltmek içinde

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

şeyler var.

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

Bence bu gerçekten kokuyor. Nasıl daha iyi yapabilirim veya en azından günlük dosyasının kapatılmadığını nasıl kontrol edebilirim? Çok fazla mesaj var, bu yüzden log dosyasını sürekli açıp kapatmayla ilgili endişelerim var.

cevap

16

StreamWriter kapalıysa, BaseStream özelliği null döndürülür.

+0

Cool - teknik parçaya cevap verir. – Melanie

+0

@Melanie: 'Dosya :: AppendText' sizin durumunuzda yararlı olabilir. – leppie

İlgili konular