我正在 C#.Net 中工作一个 Windows 应用程序和一个 Web 应用程序。我在 Windows 应用程序上使用 Timer 控件,并在 Web 应用程序中使用 SetTimeOut()
函数。但是当我运行两者时,1 或 2 分钟后显示的秒数少于 Windows 应用程序时间。
使用 Java 脚本代码,例如:
function TimerDisplay(hour, min, sec, id)
{
$("#" + id).html(hour.pad() + ":" + min.pad() + ":" + sec.pad());
if (sec >= 59) {
sec = 0;
if (min >= 59) {
min = 0;
sec = 0;
hour += 1;
}
else {
min += 1;
sec = 0;
}
}
else
sec += 1;
setTimeout(function () { TimerDisplay(hour, min, sec, id); }, 1000);
}
Number.prototype.pad = function () {
return (this < 10 ? '0' : '') + this;
}
如果有人有想法,请提出建议。
最佳答案
Javascript 的 setTimeout 不会在精确的时间运行,它会被放入队列中,在间隔到期后运行。如果CPU很忙,它可能会在间隔后运行相当多的时间。
如果您想要更准确的间隔,则需要以更频繁的间隔运行函数,并尝试在尽可能接近所需间隔的时间估计下一次调用的时间。请参阅Efficient Stopwatch .
关于c# - Javascript setTimeOut 函数与.net 中Windows 应用程序的计时器时间不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291468/