为了控制程序执行流程,您可能会遇到需要将程序暂停指定时间的情况。在 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中文网其他相关文章!