运行一个精确的时钟
本文关键字:时钟 一个 运行 | 更新日期: 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毫秒获得相同的值。
你可以从这个问题中得到更多的信息。
可以将分辨率降低到较低的值,您可以在我上面提到的相同问题中找到详细信息