首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[C++]C++中的延时方法总结

[C++]C++中的延时方法总结

作者头像
云未归来
发布2025-07-19 14:20:47
发布2025-07-19 14:20:47
2120
举报

在windows上延时

#include <iostream> #include <windows.h> using namespace std; void main() {     //睡眠5秒再输出     Sleep(5000);//单位是毫秒     std::cout << "over!" << std::endl; }

在linux上

#include <iostream> #include <unistd.h> using namespace std; int main() {     //5秒后输出     sleep(5);     std::cout << "hello!" << std::endl;

    //3000000微妙(相当于3秒)输出     usleep(3000000);     std::cout << "over!" << std::endl;

    return 0; }

C++11中std线程也提供了延时

#include <iostream> #include <chrono> #include <thread> int main() {    std::cout << "Hello waiter\n" << std::flush;    auto start = std::chrono::high_resolution_clock::now();    std::this_thread::sleep_for(std::chrono::milliseconds(2000));    auto end = std::chrono::high_resolution_clock::now();    std::chrono::duration<double, std::milli> elapsed = end-start;    std::cout << "Waited " << elapsed.count() << " ms\n";    std::this_thread::sleep_for(std::chrono::milliseconds(100)); }

更加精确地延时:

#include <chrono> void delay(int timeout_ms) {   auto start = std::chrono::system_clock::now();   while (true)   {     auto duration =         std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - start).count();     if (duration > timeout_ms)     {       LOGGING_ERROR("timeout occurred,timeout %d ms", timeout_ms);       break;     } }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档