【发布时间】:2010-11-14 17:49:30
【问题描述】:
我有一个从外部源读取大量数据的循环。该过程大约需要 20 秒,我想向用户显示进度。我不需要任何花哨的进度条,所以我选择将我的进度绘制在一个标签上,上面写着“Step 1/1000”,然后更改为“Step 2/1000”等。
我的代码如下所示:
// "count" is the number of steps in the loop,
// I receive it in previous code
String countLabel = "/"+count.ToString();
for (i = 0; i < count; i++)
{
... do analysis ...
labelProgress.Content = "Step "+i.ToString()+countLabel
}
但是,在该分析过程中,屏幕“卡住”并且进度未显示为前进。我从过去在 C++ 中理解这种行为,我可能会有一个单独的线程显示进度条,接收来自循环的通知,或某种形式的重绘/刷新,或强制窗口/应用程序处理其消息队列。
在 C# 中正确的做法是什么?我没有绑定到标签,所以如果有一个简单的进度条弹出屏幕,我可以用它来代替这个标签,那也很棒......
谢谢
【问题讨论】:
-
这可能对您有所帮助,100% 测试 stackoverflow.com/a/42995210/6863414
标签: c# wpf progress-bar