如何向 C++ 程序添加定时延迟?

2023-11-23

我正在尝试在 C++ 程序中添加定时延迟,并且想知道是否有人对我可以尝试的内容或我可以查看的信息有任何建议?

我希望我有更多关于如何实现这个定时延迟的细节,但是在我有更多关于如何添加定时延迟的信息之前,我不确定我应该如何尝试实现这个。


C++11 的更新答案:

Use the sleep_for and sleep_until功能:

#include <chrono>
#include <thread>

int main() {
    using namespace std::this_thread; // sleep_for, sleep_until
    using namespace std::chrono; // nanoseconds, system_clock, seconds

    sleep_for(nanoseconds(10));
    sleep_until(system_clock::now() + seconds(1));
}

有了这些函数,就不再需要不断添加新函数来获得更好的分辨率:sleep, usleep, nanosleep, etc. sleep_for and sleep_until是模板函数,可以通过以下方式接受任何分辨率的值chrono类型;小时、秒、飞秒等

在 C++14 中,您可以使用文字后缀进一步简化代码nanoseconds and seconds:

#include <chrono>
#include <thread>

int main() {
    using namespace std::this_thread;     // sleep_for, sleep_until
    using namespace std::chrono_literals; // ns, us, ms, s, h, etc.
    using std::chrono::system_clock;

    sleep_for(10ns);
    sleep_until(system_clock::now() + 1s);
}

请注意,睡眠的实际持续时间取决于实现:您可以要求睡眠 10 纳秒,但实现可能最终会睡眠一毫秒(如果这是它可以做到的最短时间)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向 C++ 程序添加定时延迟? 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke

随机推荐

  • 使用Lua将0秒格式化为00:00:00

    我正在尝试将持续时间 以秒为单位 格式化为时间 并且得到的结果表明我应该在某个地方考虑 一个纪元 我期望os date X 0 生成 00 00 00 但它返回 20 00 00 以及日期值 12 31 69 不过我不需要日历日期 是否有一
  • WCF通信异常

    接收 HTTP 响应时发生错误http 生产 服务 AccountService svc 这可能是由于 服务端点绑定不使用 HTTP 协议 这可以 也可能是由于服务器中止 HTTP 请求上下文 可能是由于服务关闭 查看服务器日志了解更多信息
  • 为什么不能声明嵌套类类型的内联静态数据成员?

    struct sa struct sb int a 123 inline static sb b 上面的代码会产生一个错误 main cpp 25 20 error default member initializer for sa sb
  • 来自 Windows 的低级键盘输入

    哪些 win32 调用可用于从 Windows 服务全局检测按键事件 不仅仅是 1 个窗口 我想在每次按下按键时收到一条消息 您想使用 Win32 Hooks 特别是键盘挂钩 你可以在这里读更多关于它的内容 您想要的挂钩类型是 WH KEY
  • Python从py模块读取所有导入语句的简单方法

    我正在尝试创建一个辅助函数来读取文件并模拟单元测试的所有导入 我必须读取文件与导入 因为我在 python 路径上没有这些东西 示例代码 module py import com stackoverflow question from co
  • cmake:使用多个输出配置

    我正忙于将构建过程从 msbuild 移植到 cmake 以便更好地处理 gcc 工具链 它为我正在做的一些数字工作生成更快的代码 现在 我希望 cmake 生成多个版本的输出 例如一个版本使用 sse2 另一个版本使用 x64 等等 然而
  • 如何使用jackson在java中将json转换为POJO

    我使用的是 spring 3 1 2 我需要将 json 对象解析为 POJO 这是我需要解析的 json Person id 2 Dog dateOfBirth 2012 08 20 00 00 00 price 10 00 我需要将这个
  • 使用 unix 实用程序删除连续的重复行

    这表面上听起来很简单 但实际上要复杂一些 我想使用 unix 实用程序删除连续的重复项 保留原始内容 但是 我还想保留在原始内容之后不立即出现的其他重复内容 例如 如果我们有以下几行 O B O B C D T V O B 我希望输出是 O
  • fastcgi 多路复用?

    我正在实现 fastcgi 应用程序 在阅读 fastCGI 规范后 我发现了一个名为 请求多路复用 的功能 它让我想起 Adob e RTMP 多路复用协议是专有且封闭的时代 据我了解 多路复用可以减少创建与 FCGI 客户端的新连接的开
  • 如何找到具有项目值的列表框项目索引?

    my MessageBox Show listbox Items 0 ToString is abber 如何使用 abber 找到列表框项目索引 0 With listbox Items IndexOf abber That is int
  • 有没有办法知道 C++ 中自动包含哪些标头

    这是一个后续问题this上面说 在 C 中 与 C 不同 标准标头允许 include 其他标准标头 有什么方法可以知道自动包含哪些标头 因为可能很难猜测哪些标头中定义了哪些符号 动机 我的作业在我的计算机上编译并正常工作 但 TA 告诉我
  • 如何从异步调用返回响应?

    如何从函数返回响应 结果foo发出异步请求 我试图从回调中返回值 并将结果分配给函数内的局部变量并返回该变量 但这些方法都没有实际返回响应 它们都返回undefined或者无论变量的初始值如何result is 接受回调的异步函数示例 使用
  • 闪亮的反应性

    我有一个带有大量参数的应用程序 每个参数都有很多粒度 这使得找到所需的参数变得很痛苦 这会导致反应部分不断计算 从而减慢速度 我添加了一个提交按钮 它解决了上述问题 但随后又遇到了另一个问题 下面是我构建的框架的简单复制 参数输入接受1到1
  • PowerShell函数参数语法

    为什么要这样做写主机函数外部的工作方式与函数内部的工作方式不同吗 似乎参数变量以某种方式与我声明的内容发生了变化 function a string svr string usr x svr usr Write Host x svr abc
  • 查询对象实现示例[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 任何人都可以推荐有关 C Java 中查询对象模式使用的优秀教程 实现或示例代码吗 我用谷歌没有找到太多 由于 LINQ 几乎无处不在 您确定需要重
  • cmake的默认构建配置是什么

    In this答案 它说 Debug 是默认的 cmake 构建配置 但我有不同的观察 我在 CMakeLists txt 中有以下内容 可以根据当前的构建配置选择库的调试和发布版本 target link libraries MyApp
  • 找不到有角度的自定义管道

    在我的应用程序中 我需要全局自定义管道 我尝试按照以下方式实现它角管但我总是看到这个错误 模板解析错误 找不到管道 formatdate 格式化日期 管道 import Pipe PipeTransform from angular cor
  • Java USSD 菜单树生成 - 如何

    我想使用 Java 生成一个基于树的菜单 该菜单将显示在 USSD 浏览器上 每个节点可能有子节点 以叶节点结尾 我还必须维护访问此菜单的每个用户的状态 例如他在菜单上的当前位置 以方便导航 关于如何实现树生成和状态管理有什么想法吗 我假设
  • 在 OSX 上安装 Jekyll 需要 GCC 吗?

    Jekyll 安装 says GCC 和 Make 如果您的系统没有安装它们 您可以通过在系统的命令行界面中运行 gcc v 和 make v 来检查 我正在使用 macOS Sierra 我已经安装了 Xcode 的命令行工具 CLT 和
  • 如何向 C++ 程序添加定时延迟?

    我正在尝试在 C 程序中添加定时延迟 并且想知道是否有人对我可以尝试的内容或我可以查看的信息有任何建议 我希望我有更多关于如何实现这个定时延迟的细节 但是在我有更多关于如何添加定时延迟的信息之前 我不确定我应该如何尝试实现这个 C 11 的