C++11 方法创建一个可以在需要时“停止”的计时器

2024-01-10

我必须每隔 X 秒调用一个函数来显示长时间运行的函数的进度,但如果该函数在进度更新的下一个刻度之前结束,我想删除通知。我最近刚刚开始使用 C++11,我不知道是否有办法使用正确的 c++11 语法/对象来实现此目的。

基本上,我试图弄清楚是否有一种方法可以访问与 posix 函数公开的功能相同的功能定时器创建 http://man7.org/linux/man-pages/man2/timer_create.2.html and 定时器删除 http://man7.org/linux/man-pages/man2/timer_delete.2.html使用 C++11 线程和异步函数。

我确实发现了这个问题“如何使用 C++ 11 创建计时器事件? https://stackoverflow.com/questions/14650885/how-to-create-timer-events-using-c-11”,它几乎涵盖了我需要的所有内容,但我不知道是否有办法在“提交”后停止异步调用。

现在在 C++11 中这可能吗?


介绍

简单的解决方案是让计时器设置为执行f in N 时间单位 can 可能会睡觉 for N 时间单位,但是如果有什么事情打断了睡眠,我们就不应该执行任务f.

的用法std::条件变量 http://en.cppreference.com/w/cpp/thread/condition_variable依靠成员函数可以轻松解决这个问题wait_for http://en.cppreference.com/w/cpp/thread/condition_variable/wait_for。该函数将返回false如果该函数没有收到中断,并且true如果是的话。

pending sample implementation

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

C++11 方法创建一个可以在需要时“停止”的计时器 的相关文章

  • clang C++11 调用

    虽然这里有一些关于 clang 的 C 11 支持的问题 但我似乎无法得到clang 吃掉我的 C 11 代码 clang version clang version 2 9 tags RELEASE 29 final Target x86
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • 返回右值 - 这段代码有什么问题? [复制]

    这个问题在这里已经有答案了 我遇到了以下代码片段 std string test std string m Hello return std move m int main std string m test 我知道上面的代码是不正确且不安
  • 在 std::vector> 中迭代 const T&

    我有一堂这样的课 class RPNExpr std vector
  • 模板类型推导参考

    我一直在使用具有以下形式代码的模板来进行类型推导 打印 include
  • C++ 中的垃圾收集——为什么?

    我不断听到人们抱怨 C 没有垃圾回收功能 我还听说 C 标准委员会正在考虑将其添加到该语言中 恐怕我只是不明白它的意义 使用 RAII 和智能指针消除了它的需要 对吗 我唯一的垃圾收集经验是在几台廉价的八十年代家用计算机上 这意味着系统会时
  • C++11 中具有 C 链接的复杂类型

    我需要将 C 库的标头包含到我的 C 11 代码中 现在 标头提供了涉及大量的例程和数据结构double complex到处都是 例如 include
  • C++11 中引入了哪些重大更改?

    我知道 C 11 中至少有一项更改会导致一些旧代码停止编译 引入explicit operator bool 在标准库中 替换旧实例operator void 诚然 这将破坏的代码可能是一开始就不应该有效的代码 但它仍然是一个破坏性的变化
  • c++11 为什么这个移动构造函数不起作用?

    我已经编写了下面发布的代码 我希望能够在实例之间移动向量的内容LargeClass 正在使用移动构造函数 但我只得到副本而不是移动 为什么移动语义在这里没有按预期工作 Code include
  • 如何删除可变参数模板的最后一个参数

    我有以下结构 我想从中删除最后一个参数index sequence template lt std size t values gt struct index sequence I need something like template
  • unique_ptr需要存储删除器怎么可能没有开销呢?

    先看看C Primer讲了什么unique ptr and shared ptr 16 1 6 美元 效率和灵活性 我们可以确定的是shared ptr不将删除者视为直接成员 因为删除器的类型直到运行时才知道 因为删除器的类型是a类型的一部
  • 对象返回时是否保证被移动?

    我知道 当将对象按值传递给函数时 如果存在移动构造函数 则始终会调用移动构造函数 假设没有复制省略 按值返回对象怎么样 例如 假设我们有一堂课Foo它有一个移动构造函数 我们有一个返回一个的函数Foo object Foo g Foo f
  • 与运算符<<(操作数类型std::ostream)C++ OOP和Point不匹配[重复]

    这个问题在这里已经有答案了 我试图显示我通过成员函数创建的 Point 类的 p 对象 我已将 Point p 作为参数传递给我的程序的 void displayPoint Point p 成员函数 但我的程序中出现以下编译错误 D OOP
  • 为什么 std::atomic 对象不可复制?

    看起来std atomic类型不可复制构造或复制分配 为什么 是否有技术原因导致无法复制原子类型 或者是故意限制接口以避免某种不良代码 在没有原子指令 或没有所有整数大小的原子指令 的平台上 类型可能需要包含互斥体以提供原子性 互斥锁通常不
  • Boost asio thread_pool join不等待任务完成

    考虑功能 include
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • is_standard_layout 有什么用?

    据我了解 标准布局允许三件事 空基类优化 通过某些指针转换向后兼容 C 使用offsetof 现在 包含在库中的是is standard layout谓词元函数 但我看不出它在通用代码中有何用处 因为我上面列出的那些 C 功能似乎很少需要在
  • 为什么不能使用initializer_list来初始化unique_ptr的向量? [复制]

    这个问题在这里已经有答案了 我想知道为什么initializer list 不能与unique ptr 一起使用 std vector
  • C++11:数组的编译时计算

    假设我有一些 constexpr 函数 f constexpr int f int x 我在编译时知道一些 const int N Either define N or const int N 根据您的回答的需要 我想要一个 int 数组
  • 何时在 C++ 中使用 __declspec(dllexport)

    我正在制作这个 DLL 项目 并且不包含任何特定于编译器的宏 在我的 DLL 文件中导入方法后 导入器 exe 文件编译干净并且没有生成错误 他们从事不同的项目 但解决方案相同 我是否因为没有使用任何这些调用约定而把事情搞砸了 我的 DLL

随机推荐

  • 如何在 Today Extension 中显示资产目录中的图像?

    我正在开发 iOS8 的 Today 扩展 我的应用程序组设置正确 我可以成功使用 NSUserDefaults 将简单的数据发送到我的扩展 使用本教程 http www glimsoft com 06 28 ios 8 today ext
  • 如何修复将 ipa 上传到 AppStore 时出现“'CFBundleIconName'丢失”错误?

    另一个 CFBundleIconName 丢失 问题 我知道已经有很多问题了SO标题几乎相同 许多答案提出了不同的解决方案 在我看来 这背后的问题是苹果使用了一条非常通用的信息来涵盖非常广泛的问题 我有一个 iOS 应用程序 使用编写Xam
  • 将对象设置为“Nothing”有什么好处

    我注意到 Stack Overflow 社区的一些成员会使用Set Object Nothing在结案程序中 我能够找到为什么这对于 Access 实例很有用 但在为 Excel 执行此操作时没有令人满意的答案 所以我的问题是在 VBA 中
  • 如何向delphi项目添加库路径?

    我有几个预编译的 第三方 库需要在我的项目中使用 如果我将 foo a 放在项目文件夹的根目录中 我可以构建它 但是 我有一个 32 位版本和一个 64 位版本的库 我不想交换foo a with foo 32 a and foo 64 a
  • 通过证书身份验证实现传输安全

    当我访问我的 web 服务 localhost MyService MyService svc 时 出现以下错误 服务 SslRequireCert 的 SSL 设置与 IIS Ssl SslNegotiateCert 的 SSL 设置不匹
  • 量角器、茉莉花和第一次失败时的停止测试

    在尝试弄清楚如何使某些 jasmine 期望语句依赖于先前的期望语句时 我发现在 Jasmine 2 3 0 之前 没有办法 看第一次期望失败后停止茉莉花测试 https stackoverflow com questions 221191
  • Meebo 等网站如何存储用户名和密码?

    我最近用过Meebo http www meebo com 我必须承认 我对在这样的网站中输入 IM 登录信息有点偏执 他们如何存储我的每个单独 IM 服务的用户名和密码 只有当某个网站获取我的密码并对其执行某种类型的不可逆转的单向功能时
  • WMPLib 经常停止播放

    我用以下方法播放mp3和m4as private void playmp3 string path WMPLib WindowsMediaPlayer a new WMPLib WindowsMediaPlayer a URL path a
  • 如何在特定代码行之后停止 set.seed() ?

    我想在特定行之后结束 set seed 的范围 以便对其余代码进行真正的随机化 这是一个示例 其中我希望 set seed 适用于 rnorm 第 4 行 但不适用于 nrow 第 9 行 set seed 2014 f lt functi
  • PopupMenu 单击导致 RecyclerView 滚动

    我里面有一个溢出按钮CardView in Recyclerview 每当我单击按钮时 我都会显示一个弹出菜单 但也会显示RecyclerView正在向下滚动一项 谁能帮我停止这种不必要的滚动吗 基本上我试图复制与 Playstore 中相
  • 使用表单事件动态生成提交的表单

    我对 FormEvents 有一个小问题 我想要动态填充 3 个字段 我解释一下 我有3个字段 项目 gt 框 gt 单元格 用户选择一个项目 框列表被更新 他选择一个框 单元列表被更新 为此 我使用 FormEvent 就像文档中所说的那
  • 即使退出该功能后,.NET 内存也不会释放

    我有一些 C 代码可以读取huge文件 经过一些操作后 将其引用设置为 null 并退出该函数 但内存不会释放 XmlDocument xmlDoc new XmlDocument xmlDoc LoadXml xmlString XmlS
  • 从数据库中查找视觉相似照片的算法?

    TinEye Google 和其他公司提供 反向图像搜索 您可以上传照片 几秒钟内它就会找到类似的照片 这些算法有开源版本吗 我知道 SIFT 和其他用于查找 视觉上相似 照片的算法 但它们仅适用于将一张照片直接与另一张照片进行比较 即 找
  • 创建一个用于从 Java/Clojure 执行的 jar 文件

    我想创建一个用 java 和 clojure 实现的 jar 文件来执行 这就是我采取的步骤 让我的java代码调用clojure代码 我可以生成一个包含 clojure 核心和我的 clojure 代码的 jar 文件 ThingOne
  • 活动指示器未出现

    我有一些运行时间约为 0 2 秒的繁重代码 我这样设置活动指示器 但是 它并没有显示出来 而是整个屏幕冻结了大约 0 2 秒 直到代码完成 func heavyWork self actvityIndicator startAnimatin
  • Ajax.ActionLink 在表中的标题后插入?

    我有一个 table 有一个标题行 我试图在标题行下添加一个项目 但似乎无法向ActionLink功能 InsertionMode InsertBefore将标题行的 ID 指定为更新目标只是将该行放在表的顶部 Replace替换表格的标题
  • 多次调用 CryptHashData

    我推测这是在创建一个 md5 哈希值 但对到底要哈希的内容感到困惑 char val1 4 DWORD val2 CryptCreateHash hCryptProv CALG MD5 0 0 hHash Creates hash obje
  • 在 MathJax 中显示长除法符号 )‾‾‾‾‾‾ 的方法

    有没有办法在 MathJax 中格式化长除法 使其看起来像这样 125 Explanations 4 500 4 4 1 4 10 5 4 1 8 4 2 8 20 10 8 2 20 4 5 20 0 20 20 0 但显然格式正确 这是
  • Django:SECRET_KEY 的环境变量不起作用

    I have SECRET KEY os environ SECRET KEY in my prod py and SECRET KEY secret string在我的 bashrc 中 这会导致 502 错误 但如果我设置SECRET
  • C++11 方法创建一个可以在需要时“停止”的计时器

    我必须每隔 X 秒调用一个函数来显示长时间运行的函数的进度 但如果该函数在进度更新的下一个刻度之前结束 我想删除通知 我最近刚刚开始使用 C 11 我不知道是否有办法使用正确的 c 11 语法 对象来实现此目的 基本上 我试图弄清楚是否有一