在Window窗体中更新长时间运行方法的进度条

时间:2012-09-17 11:48:30

标签: c# winforms multithreading

我有一个MDI表单,其中,一旦我点击任何菜单项,就会显示相关的表单。有时候,表单需要花时间加载,所以我想为长时间运行的调用显示一个进度条。

2 个答案:

答案 0 :(得分:1)

由于很少有表单需要时间打开,因此您应该使用background worker将表单加载代码移动到单独的线程中(这样可以避免UI冻结)。您可以将WorkerReportsProgress属性设置为true,以便在加载时使用它来显示ProgressChanged事件处理程序中进度条的进度。

如果您对如何使用背景工作者不太了解,我建议您学习如何使用它们 - 请参阅this

答案 1 :(得分:0)

虽然这是一个VB.NET示例,但重要的部分是了解这个想法,所以我建议这篇优秀的文章回答你的问题:

http://www.dreamincode.net/forums/topic/58239-progress-bar-while-loading-a-child-form/

PS:首先谷歌它不会有什么坏处。