【VC学习】Dialog1_2秒内按键次数计时_自行整理
来源:互联网 发布:深圳软件外包公司排名 编辑:程序博客网 时间:2024/05/19 00:37
GetTickCount function
Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days.
Syntax
DWORD WINAPI GetTickCount(void);
Parameters
This function has no parameters.
Return value
The return value is the number of milliseconds that have elapsed since the system was started.
Remarks
The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds. The resolution of the GetTickCount function is not affected by adjustments made by the GetSystemTimeAdjustment function.
The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if the system is run continuously for 49.7 days. To avoid this problem, use theGetTickCount64 function. Otherwise, check for an overflow condition when comparing times.
If you need a higher resolution timer, use a multimedia timer or a high-resolution timer.
To obtain the time elapsed since the computer was started, retrieve the System Up Time counter in the performance data in the registry key HKEY_PERFORMANCE_DATA. The value returned is an 8-byte value. For more information, see Performance Counters.
To obtain the time the system has spent in the working state since it was started, use the QueryUnbiasedInterruptTime function.
Requirements
Minimum supported client
Minimum supported server
Header
- Winbase.h (include Windows.h)
Library
- Kernel32.lib
DLL
- Kernel32.dll
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) 应用
用来计算某个操作所使用的时间:
...//执行耗时的操作
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
- 【VC学习】Dialog1_2秒内按键次数计时_自行整理
- VC 中的计时处理整理
- VC 中的计时处理整理
- 一天内时分秒的重合次数
- CMake 学习--博主自行整理
- 翁凯_面向对象程序设计_有秒计时的数字时钟
- 精确计时:纳秒
- 第二周编程题_有秒计时的数字时钟
- VC学习笔记整理
- 按键监测程序(按键次数)
- [AHK]精确计时到秒
- .net数据库连接(自行整理)
- java 内部类整理学习
- Java____内部类学习整理
- 预防高频访问 (在x秒内访问达到一定的次数转跳到防刷页面)
- vc中的计时程序
- VC精确计时
- VC计时的程序
- SQL更新某字段中的部分值语句
- UISearchBar搜索
- 如何创建一个Mysql数据库
- Unity3d 调用Android震动
- C语言——求最大公约数
- 【VC学习】Dialog1_2秒内按键次数计时_自行整理
- 011:列表:一个打了激素的数组2
- Gson用法
- 2015腾讯实习生笔试小结
- 【Android】ViewPager实现图片左右滑动播放及添加点击事件
- Jquery.validation.js学习
- spring中使用@RequestBody,对应的bean中属性名大写注入为空的解决方法
- 数据库第二章作业
- poj3176(DP)