2009-12-28 93 views

回答

3

你錯了,你不能直接從DoWork方法的處理程序調用UI線程,因爲它在後臺線程上。

如果要更新UI,應調用ReportProgress方法,然後從ProgressChanged事件的事件處理程序更新UI。

雖然您可以在後臺線程中調用Invoke方法,但這樣做會違背使用BackgroundWorker類的目的。 ProgressChanged事件在UI線程上拋出,並且是在後臺線程發生某些更改時用於更新UI組件的機制。

1

請記住,如果你從非UI線程調用的RunWorkerAsync(),您將需要從ProgressChanged和RunWorkerCompleted事件處理函數調用來調用。

相關問題