我創建了一個backgroundWorker
,我在Google上搜尋後然而,通過堆棧溢出調用InitializeComponent()
後RunWorkerAsync
,我才知道,我無法通過DoWork
我更新UI
要做到這一點在RunWorkerCompleted
BackgroundWorker的更新UI掛起由於大量的數據負載
所以我這樣做,但我的問題是我創造的DoWork
一個大的數據表,這樣我可以通過RunWorkerCompleted
填補我的網格數據,但這樣做的一切之後,當它進入RunWorkerCompleted
我應用程序掛起幾秒鐘,然後在加載後恢復。
我覺得這是發生的,因爲我通過DoWork
獲取了很多數據,當我使用RunWorkerCompleted
來顯示它掛起的數據時。
我有大約50,000數據,我從數據庫中提取。
如何解決此問題。也許我可以使用和做這些東西,除了BackgroundWorker
還有什麼辦法。或者可能通過BackgroundWorker
只有我可以做一些調整,它運作良好。
爲什麼不能從'DoWork'更新UI? – PoweredByOrange 2013-05-11 05:31:41
@ programmer93這是可能的。正如我那樣做,它說'非法跨線程操作:控制'myTextBox'從一個線程訪問,而不是它創建的線程。'我衝浪並知道不允許從'DoWork'更新UI更新 – 2013-05-11 05:41:37
請參閱下面的答案。 – PoweredByOrange 2013-05-11 05:59:57