」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用睡眠函數在 C++ 中暫停程式執行?

如何使用睡眠函數在 C++ 中暫停程式執行?

發佈於2024-10-31
瀏覽:438

How to Pause Program Execution in C   using Sleep Functions?

在 C 中尋求睡眠函數

為了控製程式執行流程,您可能會遇到需要將程式暫停指定持續時間的情況。在 C 中,沒有與其他語言中常用的 Sleep(time) 函數直接等效的函數。然而,C 標準庫提供了一個可行的替代方案。

引入 std::this_thread::sleep_for

C 標準函式庫提供了 std::this_thread::sleep_for 函數,它允許您將目前執行緒的執行暫停指定的持續時間。要使用它,您需要包含以下標頭:

#include 
#include 

std::this_thread::sleep_for 語法如下:

void sleep_for(const std::chrono::duration& timespan);

其中timespan 是一個std::chrono::duration 對象,指定睡眠的持續時間。若要建立基於毫秒的std::chrono::duration,請使用std::chrono::milliseconds 建構子:

std::chrono::milliseconds timespan(111605);

使用這些元件,您可以在所需的時間間隔內暫停程式的執行:

std::this_thread::sleep_for(timespan);

請注意std: :this_thread::sleep_until 用作基於時間的精確同步的補充函數。

傳統睡眠選項 (Pre-C 11)

在引入 C 11 之前,該語言缺乏線程功能和睡眠功能。因此,暫停執行的解決方案是依賴平台的。對於 Windows 或 Unix,您可能依賴以下內容:

#ifdef _WIN32
    #include 
    
    void sleep(unsigned milliseconds)
    {
        Sleep(milliseconds);
    }
#else
    #include 
    
    void sleep(unsigned milliseconds)
    {
        usleep(milliseconds * 1000); // takes microseconds
    }
#endif

或者,您可以使用 Boost 函式庫的 boost::this_thread::sleep 來簡化實作。

版本聲明 本文轉載於:1729677484如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3