瑟维的回答是正确的。欲知更多详情,请参阅下列文件:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms686298.aspx
其中指出:
请注意,未保证已准备好的线程立即运行。因此,线程可能要到睡眠间隔过去之后的某个时间才能运行。有关更多信息,请参见日程优先事项。
优先文件如下:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms685100.aspx
不过,更普遍的情况是:,您正在做一些严重错误的事情,。永远不要像这样使用Sleep。如果您想要等待一些时间,那么使用计时器或使用Delay任务。不要在测试代码之外休眠这样的线程。编写代码的正确方法可能如下
代码语言:javascript复制for (int countdown = 5; countdown > 0; countdown -= 1)
{
label1.Text = countdown.ToString();
await Task.Delay(1000);
}或者,创建一个具有计时器和计数器的类,启动计时器每秒几次,将当前时间与上次更新标签的时间进行比较,如果超过1秒,则更新标签。