我是靠谱客的博主 虚幻小刺猬,最近开发中收集的这篇文章主要介绍windows API 实现精确的打点计时器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

利用windows API QueryPerformanceFrequency()和QueryPerformanceCounter()写了一个计算精确时间差的类.

用法:initStart()的时候开始计时,此后每调一次GetTickDelta()返回的是距离上次调用GetTickDelta()所经过的毫秒数。

class MyTick
{
public:
	MyTick() {
		LARGE_INTEGER litmp;
		QueryPerformanceFrequency(&litmp);
		m_cpuClickPerSecond = (double)litmp.QuadPart;
		m_preTick = -1;
	}
	void initStart()
	{
		LARGE_INTEGER litmp;
		QueryPerformanceCounter(&litmp);
		m_preTick = litmp.QuadPart;// 获得初始值
	}
	int GetTickDelta()
	{
		LARGE_INTEGER litmp;
		QueryPerformanceCounter(&litmp);
		LONGLONG curTick = litmp.QuadPart;// 当前tick
		if (m_preTick == -1) {
			return -1;
		} else {
			int res = (int)(1000 * (curTick - m_preTick) / m_cpuClickPerSecond);
			m_preTick = curTick;
			return res;
		}
	}

private:
	double m_cpuClickPerSecond;
	LONGLONG m_preTick;
};

最后

以上就是虚幻小刺猬为你收集整理的windows API 实现精确的打点计时器的全部内容,希望文章能够帮你解决windows API 实现精确的打点计时器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部