我想在每分钟开始时运行一个功能mm:00.000
所以,每次这个条件成立时我想运行一个函数(性能非常重要):
(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count()) % 6000 == 0
知道怎么做吗?
答案 0 :(得分:1)
启动一个单独的线程。
线程检查std::chrono_system_clock
,并计算下一分钟边界的绝对时间。有几种方法可以使线程在规定的时间到来之前保持睡眠状态。一种方法是线程创建私有互斥锁和条件变量,锁定互斥锁,并调用wait_until
()下一分钟边界的绝对时间。因为没有别的东西会通知条件变量,所以线程会一直睡到规定的时间到来,然后你的线程可以调用给定的函数。
严格来说,不需要单独的线程。如果您的主执行线程无关,那么这可以作为主执行线程的一部分完成,否则。