”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用睡眠函数在 C++ 中暂停程序执行?

如何使用睡眠函数在 C++ 中暂停程序执行?

发布于2024-10-31
浏览:638

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