為了控製程式執行流程,您可能會遇到需要將程式暫停指定持續時間的情況。在 C 中,沒有與其他語言中常用的 Sleep(time) 函數直接等效的函數。然而,C 標準庫提供了一個可行的替代方案。
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 用作基於時間的精確同步的補充函數。
在引入 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 來簡化實作。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3