2012-07-04 32 views
10

Tôi đang sử dụng công cụ viết luồng kết hợp với nhân viên nền để đăng nhập.Tôi làm cách nào để biết liệu một người viết luồng có được đóng không?

Như vậy, tôi có

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

Mọi thứ trong DoStuff() phương pháp nâng cao sự kiện Progress.

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

Tôi nghĩ điều này thực sự có mùi. Làm thế nào tôi có thể làm cho nó tốt hơn, hoặc ít nhất là làm thế nào tôi có thể kiểm tra logfile đã không được đóng cửa? Có rất nhiều tin nhắn, vì vậy tôi lo lắng về việc mở và đóng logfile liên tục.

Trả lời

16

Nếu StreamWriter đóng, thuộc tính BaseStream sẽ trả lại null.

+0

Tuyệt vời - hãy trả lời phần kỹ thuật. – Melanie

+0

@Melanie: 'Tệp :: AppendText' có thể hữu ích trong trường hợp của bạn. – leppie

Các vấn đề liên quan