我必须每隔 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(使用前将#替换为@)