Skip to content

TIMER


返回自某个静态参考点以来经过的时间量

语法

` declare function Timer ( ) as double

`

用法

` result = Timer

`

返回值

返回一个 double 精度结果,表示自某个静态参考点以来经过的秒数。

说明

Timer 函数用于测量某段代码运行所需的时间,或控制代码的执行时序。要获取程序中两个时间点之间经过的时间,可以在起始点和结束点分别记录 Timer 的值,然后用结束值减去起始值。

在某些平台上,Timer 的值会在午夜重置为零(见下文)。如果起始时间和结束时间分别在重置点的两侧,则差值将为负数,这可能导致某些程序出现意外行为。在这种情况下,将差值加上 86400(24小时的秒数)应能得到正确结果。若经过时间超过一天,还需要检查已经过的天数。

Timer 返回的值不受春季和秋季系统时钟自动调整(夏令时,DST)的影响。

示例

start GeSHi

vb
'' Example of using TIMER function
'' Note: see text about correct waiting strategies
Dim Start As Double
Print "Wait 2.5 seconds."
Start = Timer
Do
    Sleep 1, 1
Loop Until (Timer - Start) > 2.5
Print "Done."

end GeSHi

平台差异

  • 在 Win32 和 Linux 上,如果程序需要等待 0.1 秒或更长时间,应使用 Sleep,这样在等待期间可以让其他程序运行。对于更短的延迟,使用 TIMER 循环可以更精确。

  • 参考点的选择因平台而异。在 Windows 上,时间从计算机启动时开始计量。在 DOS 上,时间从 1970 年 1 月 1 日开始计量。

  • DOS 用户注意:如今自 1970 年以来的秒数已超过 10^9,因此不适合存储在 Single 精度变量中,也不应该(为了获取 1/10 秒等)将其乘以某个数后存入 32 位整数变量中

  • TIMER 的精度因计算机而异。如果处理器有精密计时器(如 Intel 的 Performance Counter 奔腾处理器)且操作系统使用它,则精度与处理器时钟相关,预计可达微秒级。对于较旧的处理器(386、486),以及 DOS 中始终如此,分辨率为 1/18 秒。

  • 在 DOS 中使用 TIMER 可能会引起磁盘访问,详见论坛的分析和解决方案

与 QB 的差异

  • 在 QB 中,TIMER 返回从上一个午夜起的秒数,精度为 1/18 秒

参见

  • Time
  • Sleep

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系