纳秒级延时实例。

2019-04-15 13:37发布

HANDLE hTimer = NULL;
LARGE_INTEGER liDueTime;
//创建等待句柄  hTimer = CreateWaitableTimerA(NULL, TRUE, “myNsWait”);
if (!hTimer)
{              
return 0;
}
//设置相对时间为0.1毫秒。
liDueTime.QuadPart = -100;

//设置等待时间 if (!SetWaitableTimer(hTimer, &liDueTime, 0, NULL, NULL, 0))
{        
//
return 0;
}
//等待句柄 if (WaitForSingleObject(hTimer, INFINITE) != WAIT_OBJECT_0)
{
return 0;
}

如果需要循环等待,SetWaitableTimer和WaitForSingleObject需要重复调用。