C++ 標準庫無內建延遲函式,需平台相關 API 或自行實作。本文介紹 Windows Sleep、自製秒級 delay、亞秒級 clock 計時三種方案。
#include
// 參數為毫秒
Sleep(1000); // 延遲 1 秒
Sleep(10000); // 延遲 10 秒
優點:系統級排程、低 CPU 佔用、精度 ~1ms。
#include
void delay(int sec) {
time_t start, cur;
time(&start);
do { time(&cur); } while (difftime(cur, start) < sec);
}
缺點:精度僅 1 秒,忙碌等待佔用 CPU。
#include
void delay_ms(double ms) {
clock_t start = clock();
while ((clock() - start) * 1000.0 / CLOCKS_PER_SEC < ms) {}
}
注意:clock() 回傳 CPU 時間而非牆鐘時間,多執行緒下不準;部分嵌入式編譯器不支援。
Sleep。std::this_thread::sleep_for。