如何在长时间的外部操作中更新ProgressBar?

时间:2013-03-19 20:52:46

标签: .net progress-bar backgroundworker

在我的.NET应用程序中,我正在将大型SQL表读入内存,我希望应用程序窗口中的ProgressBar至少在某种程度上进展,而SqlDataAdapter.Fill()操作正在阻塞。我已经在Fill()对象的后台线程中进行了BackgroundWorker调用,并且我尝试更新名为ProgressBar的前台线程中的RunWorkerAsync(),但这不起作用。这里有什么建议吗?

1 个答案:

答案 0 :(得分:0)

看到你无法从Dataset.Fill获得进展,直接使用OnRowUpdate / OnRowUpdated是痛苦的,你仍然不会完成任务,你会发现应该更新多少行。

也可以在那里敲打一个计时器并在填充任务运行时更新一些动画。

作为旁注,我们编写了一个小动画组件,它在自己的线程中运行,您传递要在线程中执行的方法。将所有东西都很好地包装起来,你可以把它放在一个使用的块里面,并且整洁干净。适用于火灾和忘记线程,你也可以做模态版本。