GetTickCount() 函数的作用和用法

原文:http://www.cnblogs.com/jxsoft/archive/2011/10/17/2215366.html

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使用的高精度时间函数,并要求计算机从硬件上支持高精度计时器。

以上引用:

http://www.wesoho.com/article.asp?id=2072

http://bitboy.blog.edu.cn/user1/19986/archives/2005/1001846.shtml

时间: 2024-10-26 20:16:03

GetTickCount() 函数的作用和用法的相关文章

Oracle 学习之:ASCII,CHR函数的作用和用法

对于ASCII以及CHR函数的用法,Oracle给出的解释是: ASCII(x)gets the ASCII value of the character X, CHR() and ASCII() have the opposite effect. 即:ASCII函数是用于将字符转换成其相应的ASCII码,而CHR函数作用则恰好相反: 下面我来看一些简单的例子: SELECT ASCII('x'), ASCII('y'),ASCII('z') from dual; 语句执行的结果为 120,12

Python __call__内置函数的作用和用法

开学了进入了实验室,需要协助大师兄做事,主要是OpenStack中的代码解析,但是涉及很多python高级用法,一时间有点麻烦,在做项目的同时慢慢更新博客.这次先写一下__call__的用法,因为经常看到它却不知道到底是干嘛的. 通过查阅资料发现__call__实际上是将一个类重载了"()",也就是让一个类也可以像一个函数一样可以拿来调用了,说了也许还是不清晰,直接上例子. #/usr/bin/env python class test: def __init__(self,a): s

php中get_headers函数的作用及用法的详细介绍

get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组.如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在). 函数定义 array get_headers ( string $url [, int $format = 0 ] ) 参数 url 目标 URL format 如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名. 示例

python中os.path.isdir()等函数的作用和用法

一 用法和概念: Python中的os模块用于和系统进行交互,其中: 1 os.listdir()用于返回一个由文件名和目录名组成的列表,需要注意的是它接收的参数需要是一个绝对的路径. 2 os.path.isdir()用于判断对象是否为一个目录. 3 os.path.isfile()用于判断对象是否为一个文件. 二 实例和讲解: 下面看一下他们的用法实例: 路径下的目录和文件: dir_test os_file.py test test.txt 程序代码: 1 import os 2 path

rand()和srand()GetTickCount函数用法

标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void):从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数. 函数二:void srand(unsigned seed):参数seed是rand()的种子,用来初始化rand()的起始值. 可以认为rand()在每次被调用的时候,它会查看:1) 如果用户在此之前调用过srand(seed),给se

set_error_handler这个函数的作用是为了防止错误路径泄露

set_error_handler这个函数的作用是为了防止错误路径泄露 何为错误路径泄露呢? 我们写程序,难免会有问题(是经常会遇到问题  ),而PHP遇到错误时,就会给出出错脚本的位置.行数和原因 有很多人说,这并没有什么大不了.确实,在调试程序阶段,这确实是没啥的,而且我认为给出错误路径是必要的. 但泄露了实际路径的后果是不堪设想的,对于某些入侵者,这个信息可是非常重要,而事实上现在有很多的服务器都存在这个问题. 有些网管干脆把PHP配置文件中的display_errors设置为Off来解决

Delphi Canvas的FillRect(const Rect: TRect) 函数的作用

http://blog.163.com/[email protected]/blog/static/165262758201131211341460/ Delphi Canvas的FillRect(const Rect: TRect) 函数的作用 2011-04-12 11:34:14|  分类: Delphi|举报|字号 订阅 下载LOFTER我的照片书  | FillRect 函数功能:该函数用指定的画刷填充矩形. 用法://Delphi自带的帮助 var  Bitmap: TBitmap;

cin中函数的作用

cin是istream类的对象,它是从标准输入设备(键盘)获取数据,程序中的变量通过流提取符">>"从流中提取数据.流提取符">>"从流中提取数据时跳过输入流中的空格.tab键.换行符等空白字符.注意:只有在输入完数据再按回车键后,该行数据才被送入键盘缓存区,形成输入流,提取运算符">>"才能从中提取数据.需要注意保证从流中读取数据能正常运行.  例如: int a,b;        cin>>a

函数的学习以及用法

  浅谈函数应用 函数存在的意义:  把main函数中复杂的逻辑进行拆分,由一个一个单独的函数来处理一个单独的模块,main函数只是起到宏观调控作用 我们可以自己编写一些函数,实现某些功能,把函数的声明放在.h文件里,把函数的定义即实现放在.m文件里,然后在main.m文件里的main函数里调用实现,但是调用之前一定不要忘记把自己写的文件导入即导入头文件,导入自己编写的头文件用#import "",导入系统头文件用#import <> 此外,一个函数最多不要超过60行代码,