我正在使用一个后台编写器和后台工作程序进行记录。
因此,我有
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");
}
我觉得这真的很有气味。我怎样才能让它变得更好,或者至少如何检查日志文件是否尚未关闭?有很多消息,所以我担心连续打开和关闭日志文件。
答案 0 :(得分:19)
如果StreamWriter
已关闭,则BaseStream
属性将返回null
。