我写了一个c#程序来倒计时5秒。我所做的是:
new Task(() =>
{
try
{
this.Invoke((Action)delegate()
{
label1.Text = "5"; // 4, 3, 2..etc
});
}
Thread.Sleep(1000);
}
catch
{
// form could be disposed
break;
}
}
}).Start();
这在我的电脑上有效,但是,当我将程序复制到窗口平板电脑时,Thread.Sleep(1000) 给出了超过 1 秒的时间。也就是说,从5,4,3,2,1更新标签需要超过5秒(实际上超过10秒)。或者,更新 label1.Text = "5" 等需要太长时间?这对我来说没有意义。我想知道怎么了?
Sleep
将等待least再次激活线程之前的那么长,但它总是可以比这更长。一秒时间过去后,线程变为eligible由CPU调度器执行,调度器是able随时运行它。如果它特别繁忙,和/或使用的调度算法不专注于快速允许新的活动线程运行,则可能需要一些时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)