如何判断一个编写器是否已关闭?

时间:2012-07-04 06:49:35

标签: .net c++-cli clr backgroundworker 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()方法中的内容会引发Progress事件。

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

我觉得这真的很有气味。我怎样才能让它变得更好,或者至少如何检查日志文件是否尚未关闭?有很多消息,所以我担心连续打开和关闭日志文件。

1 个答案:

答案 0 :(得分:19)

如果StreamWriter已关闭,则BaseStream属性将返回null