我有一個非常基本的Windows窗體應用程序,在C#中工作,我試用了Background Worker。我大部分時間都在該頁面上跟隨了基本代碼。後臺工作人員在突然的程序結束時拋出異常
void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}
一切都很好,除非後臺工作人員在窗口在運行時關閉(例如按X)時正在進行工作。上述方法拋出一個空引用異常(我假設在progressBar?)。
我沒有把這個關閉方法:
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
if(bgWorker.WorkerSupportsCancellation == true)
bgWorker.CancelAsync();
}
但是,這並沒有解決問題。我想知道爲什麼會發生這種情況,我知道它與progressBar
是隔離的,因爲如果我刪除該行,當我在繁忙時關閉窗口時不會引發異常。
可能重複[如何停止BackgroundWorker窗體的關閉事件?](http://stackoverflow.com/questions/1731384/how-to-stop-backgroundworker-on-forms-closing-event) –