Windows API 纳秒级别延迟
以下代码为搜集资料数小时整理出来:延时1秒
HANDLE hTimer = NULL; LARGE_INTEGER liDueTime; liDueTime.QuadPart = -10000*1000; hTimer = ::CreateWaitableTimer(NULL,TRUE,NULL); ::SetWaitableTimer(hTimer,&liDueTime,0,NULL,NULL,0); ::WaitForSingleObject(hTimer,INFINITE); ::CloseHandle(hTimer);
以下为直接搜索boost库源码,找出相关函数
boost::this_thread::interruptible_wait(1000);
(泪奔啊。。。)折腾这么久,竟然在现成的库里面~
不过收获颇丰。呵呵
另外附加计算代码运算时间,对应boost库是否有暂未查找。
LARGE_INTEGER litmp; LONGLONG QPart1, QPart2, QFre; QueryPerformanceFrequency(&litmp); QFre = litmp.QuadPart; // 获得计数器的时钟频率 QueryPerformanceCounter(&litmp); QPart1 = litmp.QuadPart; // 获得初始值 // ... 目标指令 QueryPerformanceCounter(&litmp); QPart2 = litmp.QuadPart;//获得中止值
欢迎各位转载,但必须在文章页面中给出作者和原文链接!