c# - Javascript setTimeOut 函数与.net 中Windows 应用程序的计时器时间不匹配?

标签 c# javascript windows settimeout

我正在 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/

相关文章:

c# - 如何在同样数据绑定(bind)的代码中创建平铺图像?

c# - 优化用于导入的 Entity Framework 查询

javascript - JSX 映射函数内部的错误处理

c# - 我想创建一个安装在远程服务器上的应用程序安装程序

c++ - VC++ 替换不同对象的定义,GCC 等不

c# - 在 Windows 应用商店应用程序 (Windows 8.1) 中使用 GeoLocator 时出现 "The pipe is being closed"错误?

c# - ASP.NET:构建以列表作为参数的用户控件?

javascript - 当用户在 div 外部单击时的 JQuery 事件?

javascript - Recharts 自定义点

c++ - 我应该使用什么信号来终止/终止 Windows 上的应用程序?