gpt4 book ai didi

c# - 更新标签时,程序在For循环上挂起

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:50 24 4
gpt4 key购买 nike

我在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文件,也会发生这种情况*

最佳答案

睡前调用Application.DoEvents();,它将处理队列中的所有消息:

for (int i = 1; i <= 20; i++)
{
lbl.Text = i.ToString();
Application.DoEvents();
Thread.Sleep(100);
}

关于c# - 更新标签时,程序在For循环上挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919592/

24 4 0