【发布时间】:2011-02-07 09:15:52
【问题描述】:
我在一个 winform 应用程序中有这段代码:
for (int i = 1; i <= 20; i++)
{
lbl.Text = i.ToString();
Thread.Sleep(100);
}
我希望看到标签进度从 1 到 20,但它只是在 for 循环运行时挂起,然后显示 20,即我没有看到 1-19。
为什么会这样?有没有办法像模拟时钟上的毫秒一样快速更新标签文本(我不是在做时钟,只是一个例子。)
谢谢
*编辑:如果我有一个带有事件的按钮也会发生这种情况,该事件在没有 Thread.Sleep 的情况下增加数字但我有一个 beginInvoke 来播放 wav 文件 *
【问题讨论】:
标签: c# .net winforms for-loop freeze