我是靠谱客的博主 虚幻小刺猬,这篇文章主要介绍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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部