【发布时间】:2011-05-20 12:04:24
【问题描述】:
我使用的是 Windows Vista 和 Visual Studio 2010。创建一个 .Net 4 Windows 窗体应用程序。在默认表单上放置一个进度条,添加代码来处理表单加载事件并在那里执行progressBar1.Value = 100;。
开始调试,您会看到一个动画在大约半秒内将进度条移动到 100。
我的项目中需要 2 个进度条。一个是“全局进度”,第二个是“当前步骤进度”,所以第二个从 0 到 100,然后再回到 0 进行下一步。问题是,由于某些快速步骤的进度条很慢,它永远不会达到 100,而且看起来很奇怪。
有没有办法摆脱那个动画?在 WPF 中没关系,但我宁愿继续使用 Windows 窗体。
【问题讨论】:
-
尝试调用 Application.DoEvents() 方法
-
我不认为这是 Windows 窗体的问题。我多次使用进度条,它总是很快。检查是否有其他因素降低了您的应用程序性能。
-
只有进度条有问题。我正在使用一个后台工作者,它报告在 0 到 100 之间循环的进度,每个值之间都有一个 System.Threading.Thread.Sleep(10) 。报告进度的事件处理程序在文本框和进度条中显示进度值。文本框从 0 到 100,进度条从 0 到大约 70。
-
你试过使用后台工作者吗?
-
@AlirezaMaddah - 像这样的时候,我希望 cmets 可以被否决。 Application.DoEvents() 是邪恶的。