C# 精确定时器类

C# 精确定时器类,c#,asp.net,.net,C#,Asp.net,.net,我需要一个我正在制作的网站计时器。我以前使用过计时器(仅在Windows窗体和WPF应用程序中),但在Web开发中没有。所以我不确定哪一个计时器是最合适的,也是最准确的 我有几个要求,它们是: 它必须尽可能准确 它需要是一个基于时间段的计时器,即:2:00:00 有点像那些计时器在投标网站上的工作方式 我不是在寻找任何样本(尽管如果你在某处有一些样本的话,我会很感激的)-我只是不确定去哪里寻找,或者哪一个是最适合这份工作的样本。如果web开发是指JavaScript,那么你可以使用Date对象获

我需要一个我正在制作的网站计时器。我以前使用过计时器(仅在Windows窗体和WPF应用程序中),但在Web开发中没有。所以我不确定哪一个计时器是最合适的,也是最准确的

我有几个要求,它们是:

  • 它必须尽可能准确
  • 它需要是一个基于时间段的计时器,即:2:00:00
  • 有点像那些计时器在投标网站上的工作方式


    我不是在寻找任何样本(尽管如果你在某处有一些样本的话,我会很感激的)-我只是不确定去哪里寻找,或者哪一个是最适合这份工作的样本。

    如果web开发是指JavaScript,那么你可以使用Date对象获得以毫秒为单位的当前时间

    准确度取决于浏览器和/或设备

    以下是使用它进行分析的示例:

    var startTime = new Date().getTime();
    // some long running operation
    var endTime = new Date().getTime();
    var ellapsedMilliseconds = endTime - startTime;
    
    有点像那些计时器在投标网站上的工作方式

    这样的计时器将使用大致准确的JavaScript客户端脚本生成时钟,但结果需要经过服务器端验证才能可信(例如,您不希望我向您发送HTTP请求,说我确实是易趣物品上的最后一个出价人,而不检查我无法欺骗的内容)

    一个简单的计时器可以只依赖于
    setTimeout()
    setInterval()
    。它们无论如何都不是真正精确的,但它们会在接近大多数用途的时间开火

    要执行更新客户端时钟的合理准确的客户端倒计时,请执行以下操作:

    • 设置开始日期变量
    • 使用
      setInterval()
    • 比较不同的时间段,看看是否经过了某个时间段
    • 在时间段结束后执行一些操作(并确保调用
      clearInterval()

    同样,如果希望计时器结果具有防篡改功能,则必须在服务器端验证计时器结果。您可能会定期与服务器进行异步通信,或者在倒计时时进行异步通信。

    如果您正在寻找C类,则使用的计时器类实际上与javascript或AJAX没有任何关系。
    DateTime.UtcNow
    ?这听起来像是一个网站。客户端对服务器的延迟意味着您可能不需要将时间保持在比一秒钟小得多的精度。感谢您的详细回答@Tim M M,您确实给了我一些思考,并且足够让我开始。再次感谢!