每分钟开始运行一个功能?

时间:2016-07-15 02:40:56

标签: c++

我想在每分钟开始时运行一个功能mm:00.000

所以,每次这个条件成立时我想运行一个函数(性能非常重要):

(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count()) % 6000 == 0

知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

启动一个单独的线程。

线程检查std::chrono_system_clock,并计算下一分钟边界的绝对时间。有几种方法可以使线程在规定的时间到来之前保持睡眠状态。一种方法是线程创建私有互斥锁和条件变量,锁定互斥锁,并调用wait_until()下一分钟边界的绝对时间。因为没有别的东西会通知条件变量,所以线程会一直睡到规定的时间到来,然后你的线程可以调用给定的函数。

严格来说,不需要单独的线程。如果您的主执行线程无关,那么这可以作为主执行线程的一部分完成,否则。