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

语法
用法

result = Timer

返回值

返回Double精度结果,其时间(以秒为单位),因为静态参考点。

说明


Timer函数可用于查找代码段运行多长时间,或用于控制代码的时间。要了解程序中两点之间经过了多少时间,您可以在开始和结束点记录Timer的值,然后从结束值中减去起始值。

在某些平台上,Timer的值在午夜时间会重置为零(见下文),因此如果起始和结束时间位于复位点的两边,差值将为负数。这可能会导致某些程序出现意外行为。在这些情况下,将86400(24小时内的秒数)添加到差异中,应返回正确的结果。如果所花费的时间长于一天,那么还需要检查已经过去的天数。

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

例子

''使用TIMER功能的示例
''注意:请参阅有关正确等待策略的文本
Dim Start As Double
Print "等待2.5秒。"
Start = Timer
Do
    Sleep 1, 1
Loop Until (Timer - Start) > 2.5
Print "完成。"


平台差异

  • 在Win32和Linux上,如果程序必须等待0.1秒以上的时间,则应该使用睡觉,这样可以让其他程序在等待期间运行。对于更短的延迟,使用TIMER的循环可以更精确。
  • 所选择的参考点取决于平台。在Windows上,相对于计算机启动的时间来衡量时间。在DOS上,时间是相对于1970年1月1日测量的。

DOS用户注意事项:今天,自1970年以来的秒数超过10 ^ 9,因此不适合存储在单精度变量中,也不应该乘以(获得1/10秒左右) 并存储在32位整数变量中

  • 定时器的精度因使用的计算机而异。如果处理器具有精确定时器(如Intel的Performance Counter Pentium处理器),并且操作系统使用它,则精度与处理器时钟相关联,可以预期微秒。使用较旧的处理器(386,486),并且始终在DOS中,分辨率为1/18秒。

  • TIMER的使用可能会导致DOS中的磁盘访问,请参阅论坛进行分析和解决方案

与QB差别

  • 在QB中,TIMER从最后一个午夜返回秒数,其准确度为1/18秒

参考