微秒级延时

之前因项目需要,需要一个微秒级延时函数。

如下微秒级延时函数(来自网络):

// 微秒级延时
void Delay(DWORD delayTime)
{
	LARGE_INTEGER liPerfFreq = { 0 };
	if (!QueryPerformanceFrequency(&liPerfFreq)) // 获取系统频率
		return;

	LARGE_INTEGER liPerfStart = { 0 };
    LARGE_INTEGER liPerfNow   = { 0 };
	QueryPerformanceCounter(&liPerfStart);

	for(;;)
	{
		QueryPerformanceCounter(&liPerfNow);
		double time = ( ((liPerfNow.QuadPart - liPerfStart.QuadPart)*1000000) / (double)liPerfFreq.QuadPart);
		if (time >= delayTime)
			break;
	}
}


猜你喜欢

转载自blog.csdn.net/bai2010bingbing/article/details/46709563