首页 > 后端开发 > C++ > 如何在 C 中挂起执行:睡眠函数和替代方法指南

如何在 C 中挂起执行:睡眠函数和替代方法指南

DDD
发布: 2024-10-23 19:50:02
原创
556 人浏览过

How to Suspend Execution in C  : A Guide to the Sleep Function and Alternatives

C 中的睡眠函数:综合指南

与 C 中的对应函数不同,C 缺乏显式的 Sleep() 函数来暂停程序执行在指定的时间内。然而,现代 C 标准引入了一种通用的解决方案,由 提供。和

使用 std::this_thread::sleep_for:

这是 C 11 及更高版本的推荐方法。它需要一个 std::chrono::milliseconds 类型的参数来指定睡眠持续时间。

<code class="cpp">#include <chrono>
#include <thread>

std::chrono::milliseconds timespan(111605); // or whatever

std::this_thread::sleep_for(timespan);</code>
登录后复制

Pre-C 11 替代方案:

之前在 C 11 中引入线程,需要特定于平台的解决方案。一种选择是使用条件编译定义睡眠函数:

<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 库:

<code class="cpp">#include <boost/thread/thread_only.hpp>

void sleep(unsigned milliseconds)
{
    boost::this_thread::sleep(boost::posix_time::milliseconds(milliseconds));
}</code>
登录后复制

其他功能:

除了 sleep_for 之外,标头提供 sleep_until 来暂停执行直到特定时间点。这提供了更大的灵活性,并可以更精确地控制睡眠持续时间。

以上是如何在 C 中挂起执行:睡眠函数和替代方法指南的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板