為了控製程式執行流程,您可能會遇到需要將程式暫停指定時間的情況。在 C 中,沒有與其他語言中常用的 Sleep(time) 函數直接等效的函數。然而,C 標準庫提供了一個可行的替代方案。
C 標準函式庫提供了 std::this_thread::sleep_for 函數,它允許您將目前執行緒的執行暫停指定的持續時間。要使用它,您需要包含以下標頭:
<code class="cpp">#include <chrono> #include <thread></code>
std::this_thread::sleep_for 的語法如下:
<code class="cpp">void sleep_for(const std::chrono::duration& timespan);</code>
其中timespan 是std::chrono::duration對象指定睡眠持續時間。若要建立基於毫秒的std::chrono::duration,請使用std::chrono::milliseconds 建構子:
<code class="cpp">std::chrono::milliseconds timespan(111605);</code>
使用這些元件,您可以將程式的執行暫停所需的時間間隔:
<code class="cpp">std::this_thread::sleep_for(timespan);</code>
請注意,std::this_thread::sleep_until 作為基於時間的精確同步的補充函數。
在引入 C 11 之前,該語言缺乏線程功能和睡眠功能。因此,暫停執行的解決方案是依賴平台的。對於 Windows 或 Unix,您可能依賴這樣的東西:
<code class="cpp">#ifdef _WIN32 #include <windows.h> void sleep(unsigned milliseconds) { Sleep(milliseconds); } #else #include <unistd.h> void sleep(unsigned milliseconds) { usleep(milliseconds * 1000); // takes microseconds } #endif</code>
或者,您可以使用 Boost 函式庫的 boost::this_thread::sleep 來簡化實作。
以上是如何使用睡眠函數暫停 C 程式執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!