运行一个精确的时钟

本文关键字:时钟 一个 运行 | 更新日期: 2023-09-27 18:16:22

我正在研究一个模拟时钟应用程序,它具有正常时钟的准确性。它不是显示当前时间,而是显示从给定时间开始的时间。我使用了一个每秒触发一次的计时器事件处理程序。

protected void Timer_Tick(object sender, EventArgs e)
{
    DateTime CurrentTime = DateTime.Now;
    TimeSpan ElapsedTime = m_PrevCurrentTime.HasValue ? CurrentTime - m_PrevCurrentTime.Value  : TimeSpan.Zero;
    Time += ElapsedTime;
    // Update clock.
    :
    m_PrevCurrentTime = CurrentTime;
}
然而,

ElapsedTime从来不是精确的1秒,所以时钟运行不精确。有没有更好的方法?

运行一个精确的时钟

至少在Windows上,您永远无法获得确切的时钟值。普通分辨率约为15毫秒。这意味着如果您读取该值,您将连续15毫秒获得相同的值。

你可以从这个问题中得到更多的信息。

可以将分辨率降低到较低的值,您可以在我上面提到的相同问题中找到详细信息