12

ロギングのために、バックグラウンドワーカーと組み合わせてストリームライターを使用しています。

そういうものとして、私は

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

これは本当ににおいがすると思います。どうすれば改善できますか、または少なくともログファイルが閉じられていないことを確認するにはどうすればよいですか?メッセージが多いので、ログファイルを連続して開いたり閉じたりするのが気になります。

4

1 に答える 1

24

StreamWriterが閉じている場合、BaseStreamプロパティは を返しnullます。

于 2012-07-04T06:55:02.270 に答える