高精度计时器类
来源:互联网 发布:淘宝快递多少钱 编辑:程序博客网 时间:2024/06/05 07:43
#include <windows.h>
#include <exception>
class HRTimer
{
public:
HRTimer();
double getFrequency();
void startTimer() ;
double stopTimer();
private:
LARGE_INTEGER start;
LARGE_INTEGER stop;
double frequency;
};
HRTimer::HRTimer() : start(), stop(), frequency()
{
frequency = getFrequency();
}
double HRTimer::getFrequency()
{
LARGE_INTEGER proc_freq = {0};
if (!::QueryPerformanceFrequency(&proc_freq)) throw std::exception(TEXT("QueryPerformanceFrequency() failed"));
return (1.0) / static_cast<double>(proc_freq.QuadPart);
}
void HRTimer::startTimer()
{
DWORD_PTR oldmask = ::SetThreadAffinityMask(::GetCurrentThread(), 0);
::QueryPerformanceCounter(&start);
::SetThreadAffinityMask(::GetCurrentThread(), oldmask);
}
double HRTimer::stopTimer()
{
DWORD_PTR oldmask = ::SetThreadAffinityMask(::GetCurrentThread(), 0);
::QueryPerformanceCounter(&stop);
::SetThreadAffinityMask(::GetCurrentThread(), oldmask);
return ((stop.QuadPart - start.QuadPart) * frequency);
}
int _tmain(int argc, _TCHAR* argv[])
{
HRTimer cHRTimer;
cHRTimer.startTimer();
Sleep(10000);
double dElapse = cHRTimer.stopTimer();
}
- 高精度计时器类(VB)
- 高精度计时器类
- 高精度计时器类
- C/C++高精度计时器类
- 高精度计时器
- 高精度计时器
- 高精度计时器
- 高精度计时器
- 怎样获得高精度计时器
- 高精度计时器演示
- 高精度纳秒计时器
- Perl高精度计时器
- TStopwatch 高精度秒表 计时器
- 高精度计时器(微秒级)
- VC++中的计时器及多媒体高精度计时器
- Windows/Linux高精度计时器(C++)
- Windows/Linux高精度计时器(C++)
- Windows函数使用 — 高精度计时器
- HDU 4739
- Excel 与Sql2000数据库之间以命令方式导入导出
- (激励自己学习)努力吧,现在也不晚(转)
- jdbc链接数据库
- 类对象的堆内存莫名被删除调试方案
- 高精度计时器类
- ios开发--UITabBarController使用详解
- 小知识
- struts2局部类型转换器的使用。
- 七牛CEO许式伟:移动游戏资源存贮的大趋势
- ERROR: transport error 202: bind failed: Address already in use
- 软件产品网降权分析
- 重装系统蓝屏--硬盘模式设置
- 【2084 数塔 DP】