1

我必须在 10 秒内显示一个计时器以进行体育比赛。我已经使用 TTimer 的 OnTimer 事件来做到这一点。间隔设置为 100。我的例程正确显示当前 min:sec.10th(例如:02:45.7),但如果我比较,我的计时器似乎每分钟松动约 4 秒。到正常时钟。

在 Delphi XE2(或 XE3)中有更好的方法来获得时间精度计时器吗?

4

1 回答 1

2

您可以使用计时器来显示时钟的当前值,但使用不同的方法来计算经过的时间。

您必须知道 Windows 计时器的时间不准确,即使您将其设置为每 100 毫秒经过一次,触发 OnTimer 事件也可能需要更多时间,如果由于某种原因之前经过两次或更多次,它甚至可能会错过一些时间间隔你的申请处理它。

例如,您可以使用系统高分辨率性能计数器以纳秒精度跟踪时间。

您还可以使用 Delphi TStopwatch类,它封装了系统调用并在您的机器中没有高分辨率性能计数器时回退到其他方法 (GetTickCount)。

另请查看如何使用高分辨率性能计数器delphi.about.com 准确测量经过时间的文章。

于 2013-01-16T04:07:36.860 回答