为了控制程序执行流程,您可能会遇到需要将程序暂停指定持续时间的情况。在 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