在winform进度条运行期间执行代码

时间:2014-04-25 04:48:25

标签: c# vb.net winforms

我有一个小的winform应用程序,我在第一个运行表单上放了一个进度条。此进度条在10秒内完成,在进度条完成后,下一个活动将像数据库调用一样启动。

我希望当这个进度条运行10秒钟时,在此期间数据库调用应该完成其工作而不是在进度条完成后调用。

任何人都可以解释或有示例代码来解释这种技术??? 提前谢谢。

3 个答案:

答案 0 :(得分:3)

您的问题可能源于您正在运行用户界面线程上的繁重工作,因此基本上您持有该线程不做任何事情。

要解决此问题,您需要在需要更新时在单独的线程和Control.Invoke进度条控件上运行。

在VS Magazine上查看Threading and the UI

答案 1 :(得分:1)

您需要使用后台工作人员!

在后台工作线程和UI线程中执行繁重的操作会使进度条保持运行。

你应该找到很多关于后台工作者使用的例子,其中一些是:

http://www.dotnetperls.com/backgroundworker

https://stackoverflow.com/a/15153258/2243584

答案 2 :(得分:0)

有许多好的多线程教程可以详细解释这个问题。谷歌搜索“winforms线程同步”this是第一个出现的。非常好。