delphi7的GetTickCount作用和用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi7的GetTickCount作用和用法相关的知识,希望对你有一定的参考价值。
procedure TimeDelay(int DelayTime);var start_time: integer;beginstart_time := GetTickCount();doApplication.ProcessMessage;//通知主程序可以处理其他消息。while ((GetTickCount - start_time) < DelayTime);end;这个函数表示什么意思或者举一些具体例子
这个段程序是一个“延时”过程。GetTickCount是返回一个DWORD类型,其返回的值是自系统启动以来所经历的时间,单位:毫秒。
此段代码基本原理就是:
先GetTickCount取值赋于Start_Time,然后不停的循环用GetTickCount来和Start_Time来相减,直到这个差值大于参数DelayTime则退出循环结束过程,从而达到延时的目的。为了不造成程序因此间循环而停止响应,故在循环中用了Application.ProcessMessage来手动使程序响应系统信息。 参考技术A GetTickCount() 函数的作用和用法
DWORD GetTickCount(void);
1) 定义
For Release configurations, this function returns the number of milliseconds since the device booted, excluding any time that the system was suspended. GetTickCount starts at 0 on boot and then counts up from there.
在Release版本中,该函数从0开始计时,返回自设备启动后的毫秒数(不含系统暂停时间)。
For Debug configurations, 180 seconds is subtracted from the the number of milliseconds since the device booted. This allows code that uses GetTickCount to be easily tested for correct overflow handling.
在Debug版本中,设备启动后便从计时器中减去180秒。这样方便测试使用该函数的代码的正确溢出处理。
Return Values
The number of milliseconds indicates success.
返回值:如正确,返回毫秒数。
Header: Winbase.h.
Link Library: Coredll.lib.
2) 应用
用来计算某个操作所使用的时间:
Start:=GetTickCount;
...//执行耗时的操作
Stop:=GetTickCount;
TimeUsed:=(Stop-Start)/1000; //使用了xxx秒
用来定时:
void main()
DWORD dwLast;
DWORD dwCurrent;
DWORD dwInterval = 1000;
dwLast = GetTickCount();
int i = 0;
while(true)
dwCurrent = GetTickCount();
if( dwCurrent - dwLast < dwInterval )
continue;
//your code to be executed when interval is elapsed
printf("dwLast,dwCurrent,diff:%d,%d,%d ",dwLast,dwCurrent,dwCurrent-dwLast);
//your code to determine when to break
if( i > 10 ) break;
i++;
dwLast = dwCurrent;
printf("Time is up!");
break;
getchar();
return;
对于一般的实时控制,使用GetTickCount()函数就可以满足精度要求,但要进一步提高计时精度,就要采用QueryPerformanceFrequency()函数和QueryPerformanceCounter()函数。这两个函数是VC提供的仅供Windows 9X使用的高精度时间函数,并要求计算机从硬件上支持高精度计时器。
windows下的计算时间间隔 -- GetTickCount()
用法:
#include "windows.h"
DWORD lastTime =0;
DWORD currentTime = 0;
DWORD spendTime = 0;
lastTime = GetTickCount();//ms
//延时
currentTime = GetTickCount();
spendTime = currentTime - lastTime;//ms
https://blog.csdn.net/wuxinliulei/article/details/12314207
以上是关于delphi7的GetTickCount作用和用法的主要内容,如果未能解决你的问题,请参考以下文章
windows下的计算时间间隔 -- GetTickCount()
opencv 计算消费时间函数耗时频率 getTickCount() getTickFrequency()