Как узнать, закрыт ли потоковик?

Я использую 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

Если StreamWriter закрыто, свойство BaseStream вернет null.