如果想要計算精確的時間可以用
QueryPerformanceFrequency 獲得電腦 CPU 每秒幾個 tick
QueryPerformanceCounter 獲得電腦 tick 數
這可以用來計算程式執行時間
還可以拿來空轉、暫停程式之用
以下是簡單的範例
LARGE_INTEGER Hz; // CPU Tick LARGE_INTEGER refTick, nowTick; double nTick;
QueryPerformanceFrequency(&Hz);// Get CPU ticks per second
nTick = Hz.QuadPart * 0.0025; // for-loop for idle 2.5ms
QueryPerformanceCounter(&refTick);
for(;;)
{
QueryPerformanceCounter(&nowTick);
if ( ( nowTick.QuadPart - refTick.QuadPart ) > nTick )
break;
} // for loop
(上面的範例有在不同 CPU 時脈的電腦上測試過)
浙公网安备 33010602011771号