首页 > 解决方案 > C# time.sleep 没有按预期工作,没有明显的原因

问题描述

所以这个算法应该以 1 秒的间隔将完成的单词闪烁 3 次,但它只是冻结了 5 秒。有任何想法吗?

bool appear = false;
int i = 0;
while (i < 5)
{
    i++;
    if (appear == false)
    {
        appear = true;
        Finished_label.Visible = true;
    }
    else
    {
        appear = false;
        Finished_label.Visible = false;
    }
    System.Threading.Thread.Sleep(1000);
}

*编辑我在 C# Visual Studio Windows Forms Application 中写这个

标签: c#visual-studioif-statementwhile-loop

解决方案


Thread.Sleep() 会阻塞 UI 线程,因此您看不到更改。你可以使用

await Task.Delay(1000);

推荐阅读