VC实现微秒(十万分之一秒)休眠
生活随笔
收集整理的這篇文章主要介紹了
VC实现微秒(十万分之一秒)休眠
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
VC自帶的SDK中為我們提供了一個Sleep函數,此函數的最小單位為毫秒(既千分之一秒);但在實際的應該中(特別是網絡數據傳輸)我們需要更小的休眠單位(微秒),而系統又沒有提供相關API,那么我們如何實現微秒(既十萬分之一秒)的休眠呢?
???? 我們知道系統中為我們提供了QueryPerformanceFrequency與QueryPerformanceCounter等相關API,而這些API的時間單位都是微秒及的;這為我們實現微秒休眠提供了思路;為了實用起見我們就直接給出函數代碼,代碼如下:
// lTime----休眠時間(微秒)// bProcessMsg----休眠時是否處理系統消息void MSleep( long lTime, bool bProcessMsg ){LARGE_INTEGER litmp; LONGLONG QPart1,QPart2;double dfMinus, dfFreq, dfTim, dfSpec; QueryPerformanceFrequency(&litmp);dfFreq = (double)litmp.QuadPart;QueryPerformanceCounter(&litmp);QPart1 = litmp.QuadPart;dfSpec = 0.000001*lTime;do{if ( bProcessMsg == true ){MSG msg;PeekMessage(&msg,NULL,0,0,PM_REMOVE);TranslateMessage(&msg); DispatchMessage(&msg);} QueryPerformanceCounter(&litmp);QPart2 = litmp.QuadPart;dfMinus = (double)(QPart2-QPart1);dfTim = dfMinus / dfFreq;}while(dfTim<dfSpec);}
轉載于:https://www.cnblogs.com/rogee/archive/2011/02/15/1954980.html
總結
以上是生活随笔為你收集整理的VC实现微秒(十万分之一秒)休眠的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delphi写的等待进程运行结束函数
- 下一篇: 【Python】多线程