Loops 为什么没有messagebox.show()我的循环就不能工作?

Loops 为什么没有messagebox.show()我的循环就不能工作?,loops,Loops,我想让一个windows窗体在开始时做一个“标签倒计时”,我以前也遇到过其他代码的同样问题,当im在循环中时,它直到循环结束才会执行,但当我在循环中放入一个messegebox时,它会完美地工作 例子: 但是当我取下messegebox时,程序不会倒计时,而是运行代码并显示最后一个字符(在本例中为1) 编译器得出结论,不需要执行整个循环,因为最终结果无论如何都是1。这是一个例子。编译器得出结论,不需要执行整个循环,因为最终结果无论如何都是1。这是一个例子。我不明白。你需要解决什么问题?编译器已经

我想让一个windows窗体在开始时做一个“标签倒计时”,我以前也遇到过其他代码的同样问题,当im在循环中时,它直到循环结束才会执行,但当我在循环中放入一个messegebox时,它会完美地工作

例子:
但是当我取下messegebox时,程序不会倒计时,而是运行代码并显示最后一个字符(在本例中为1)

编译器得出结论,不需要执行整个循环,因为最终结果无论如何都是1。这是一个例子。

编译器得出结论,不需要执行整个循环,因为最终结果无论如何都是1。这是一个例子。

我不明白。你需要解决什么问题?编译器已经解决了,对吗?它只是优化了它,但finel的结果是1,正如你所期望的。是的,但我可以强迫它给我一个标签变化3。。。2.1.就像循环中的messagebox一样?那是另一回事。即使没有编译器优化,也不会得到预期的结果。我不知道这是哪种语言(我猜是C),搜索UI定时器或类似的语言和库,你用它来实现它。C#它是。。。我试着用keybord.iskeydown做一个循环,但遇到了同样的问题,iskeydown没有按键,但当我把一个消息框放在循环中时,它得到了按键…我不明白。你需要解决什么问题?编译器已经解决了,对吗?它只是优化了它,但finel的结果是1,正如你所期望的。是的,但我可以强迫它给我一个标签变化3。。。2.1.就像循环中的messagebox一样?那是另一回事。即使没有编译器优化,也不会得到预期的结果。我不知道这是哪种语言(我猜是C),搜索UI定时器或类似的语言和库,你用它来实现它。C#它是。。。我试着用keybord.iskeydown做一个循环,但遇到了同样的问题,iskeydown没有按键,但当我把一个消息框放在循环中时,它得到了按键…我不明白。你需要解决什么问题?编译器已经解决了,对吗?它只是优化了它,但finel的结果是1,正如你所期望的。是的,但我可以强迫它给我一个标签变化3。。。2.1.就像循环中的messagebox一样?那是另一回事。即使没有编译器优化,也不会得到预期的结果。我不知道这是哪种语言(我猜是C),搜索UI定时器或类似的语言和库,你用它来实现它。C#它是。。。我试着用keybord.iskeydown做一个循环,但也遇到了同样的问题,iskeydown没有按键,但当我在循环中放入一个消息框时,它得到了按键……看看后台工作人员。看看幕后工作人员。看看幕后工作人员。
private void button1_Click(object sender, EventArgs e)
    {
        counter();
    }

private void counter()
    {
        for(int i = 3; i > 0; i--)
        {
            Thread.Sleep(1000);
            MessageBox.Show(i.ToString());
            label2.Text = i.ToString();
        }