线程延时

来源:互联网 发布:mac修改终端用户名 编辑:程序博客网 时间:2024/05/21 10:24

    在进行多线程编程时,经常需要进行一些线程的延时,而对于Sleep 是不准确的,所以需要获取震片时间钟进行延时。代码如下:

ULONG GetTimeDis(struct tm first, struct tm second)    
{    return abs((first.tm_hour * 3600 + first.tm_min * 60 + first.tm_sec)        - (second.tm_hour * 3600 + second.tm_min * 60 + second.tm_sec));}//延时 微妙级别void Delay(ULONG ulMicroSeconds){    LARGE_INTEGER  timeStop;     LARGE_INTEGER  timeStart;     LARGE_INTEGER  Freq;     ULONG  ulTimeToWait;    __try { if (!QueryPerformanceFrequency( &Freq ))return;ulTimeToWait = Freq.QuadPart * ulMicroSeconds / 1000 / 1000; QueryPerformanceCounter ( &timeStart ); timeStop = timeStart; while( timeStop.QuadPart - timeStart.QuadPart < ulTimeToWait ) { QueryPerformanceCounter( &timeStop ); }} __except( EXCEPTION_EXECUTE_HANDLER ) { AfxMessageBox( "延迟错误") ; }}