在我的.NET应用程序中,我正在将大型SQL表读入内存,我希望应用程序窗口中的ProgressBar
至少在某种程度上进展,而SqlDataAdapter.Fill()
操作正在阻塞。我已经在Fill()
对象的后台线程中进行了BackgroundWorker
调用,并且我尝试更新名为ProgressBar
的前台线程中的RunWorkerAsync()
,但这不起作用。这里有什么建议吗?
答案 0 :(得分:0)
看到你无法从Dataset.Fill获得进展,直接使用OnRowUpdate / OnRowUpdated是痛苦的,你仍然不会完成任务,你会发现应该更新多少行。
也可以在那里敲打一个计时器并在填充任务运行时更新一些动画。
作为旁注,我们编写了一个小动画组件,它在自己的线程中运行,您传递要在线程中执行的方法。将所有东西都很好地包装起来,你可以把它放在一个使用的块里面,并且整洁干净。适用于火灾和忘记线程,你也可以做模态版本。