timer.h

来自「关于远程网络监视程序的源码」· C头文件 代码 · 共 52 行

H
52
字号
#pragma once


// a very precise time class, use CPU core frequency to measure tick
class CMediaTimer
{
public:
	CMediaTimer()
	{
		m_bInitialized = QueryPerformanceFrequency( (LARGE_INTEGER *)&m_lnFrequency );
		m_lnStartTime = 0;
		m_bTimerStarted = false;
	}

	// start timer
	void Start()
	{
		if( m_bInitialized && QueryPerformanceCounter( (LARGE_INTEGER *)&m_lnStartTime ) )
		{
			m_bTimerStarted = true;
		}

		return ;
	}

	// stop timer and return time
	double Stop()
	{
		if( !m_bTimerStarted )
			return 0.0;

		unsigned __int64 lnEndTime, lnElapsedTime;
		if( QueryPerformanceCounter( (LARGE_INTEGER *)&lnEndTime ) )
		{
			lnElapsedTime = lnEndTime - m_lnStartTime;
		}
		else
		{
			lnElapsedTime = 0;
		}

		// give a millisecond precision
		return ( (double)lnElapsedTime / (double)m_lnFrequency * 1000.0 );
	}

private:
	BOOL m_bInitialized;
	bool m_bTimerStarted;
	unsigned __int64 m_lnFrequency;
	unsigned __int64 m_lnStartTime;
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?