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

Car*_*los 4 c++11

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

基本上,我试图弄清楚是否有办法访问与使用 C++11 线程和异步函数的 posix 函数timer_createtimer_delete公开的功能相同的功能。

我确实发现了这个问题“如何使用 C++ 11 创建计时器事件? ”,它几乎涵盖了我需要的所有内容,但我不知道是否有办法在“提交”后停止异步调用。

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

Fil*_*efp 5

介绍

简单的解决办法是让这个定时集中执行˚Fň 时间单位可以潜在地睡ň 时间单位,但是,如果有中断睡眠,我们不应该执行任务˚F

使用std::condition_variable可以轻松解决这个问题,依赖成员函数wait_for。该函数将返回错误,如果函数没有收到中断,以及真正的,如果它没有。

待定示例实施

  • [示例实现](http://coliru.stacked-crooked.com/a/8804fee86d99a1e5 "Live at Coliru")。 (2认同)