3
我繼承了一個BackgroundWorker
和被覆蓋的OnDoWork:BackgroundWorker的OnDoWork是否從調用線程或工作線程調用?
protected override void OnDoWork(DoWorkEventArgs e)
{
WorkerEndedEvent.Reset();
base.OnDoWork(e);
}
我的問題是,該線程將這個被稱爲從?是否保證在我致電RunWorkerAsync()
期間被調用,或者是否可以在之後調用(即從工作者線程)?
太好了,謝謝。僅僅是從經驗,還是你知道有文件的解釋(MSDN似乎沒有提到它!!)? – noelicus
@noelicus它*具有*從一個單獨的線程調用 - 否則它不會是異步的! –
@noelicus:[The documentation](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker.aspx)包含一個間接提示:*「您必須小心,不要操作任何用戶 - 接口對象的DoWork事件處理程序中,而是通過ProgressChanged和RunWorkerCompleted事件「*」與用戶界面進行通信。這意味着DoWork在不同於調用'RunWorkerAsync'的線程上執行,但'ProgressChanged'和'RunWorkerCompleted'被編組回調用線程。 –