我正在制作模拟时钟应用程序,它具有正常时钟的准确性。它不是显示当前时间,而是显示从给定时间开始的时间。我使用了每秒触发的计时器事件处理程序。
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秒,因此时钟运行不准确。 有更好的方法吗?
答案 0 :(得分:0)
至少在Windows上,你永远无法获得确切的时钟值。 普通分辨率约为15毫秒。这意味着如果读取值,则连续15 ms获得相同的值。
您可以在this问题中获得更多信息。
可以将分辨率降低到较低的值,您可以在我上面引用的同一问题中找到详细信息。