首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 延遲函式實作:Sleep、delay 與高精度計時

     編輯:關於C++

C++ 標準庫無內建延遲函式,需平台相關 API 或自行實作。本文介紹 Windows Sleep、自製秒級 delay、亞秒級 clock 計時三種方案。

1. Windows Sleep (推薦)


#include 
// 參數為毫秒
Sleep(1000);  // 延遲 1 秒
Sleep(10000); // 延遲 10 秒

優點:系統級排程、低 CPU 佔用、精度 ~1ms。

2. 秒級 delay (time.h)


#include 
void delay(int sec) {
    time_t start, cur;
    time(&start);
    do { time(&cur); } while (difftime(cur, start) < sec);
}

缺點:精度僅 1 秒,忙碌等待佔用 CPU。

3. 亞秒級 clock()


#include 
void delay_ms(double ms) {
    clock_t start = clock();
    while ((clock() - start) * 1000.0 / CLOCKS_PER_SEC < ms) {}
}

注意:clock() 回傳 CPU 時間而非牆鐘時間,多執行緒下不準;部分嵌入式編譯器不支援。

選擇建議

  • Windows 應用:優先 Sleep。
  • 跨平台高精度:C++11 std::this_thread::sleep_for。
  • 嵌入式/無 OS:硬體定時器或忙碌等待迴圈。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved