我创建了一个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