可以使用chrono库实现简单的周期周期性定时任务
#include "stdafx.h" #include#include #include using namespace std; using namespace std::chrono; class CSimpleTimer { public: CSimpleTimer() :m_begin(high_resolution_clock::now()){} void reset() { m_begin = high_resolution_clock::now(); } template int64_t elapsed() const { return duration_cast (high_resolution_clock::now() - m_begin).count(); } //micro_s int64_t elapsed_micro() const { return elapsed (); } //mill_s int64_t eapsed_ms() const { return elapsed (); } // ns int64_t elapsed_nano()const { return elapsed (); } // s int64_t elapsed_seconds()const { return elapsed (); } private: time_point m_begin; }; void doJob() { std::cout << "shining days" << std::endl; } int main() { CSimpleTimer t; while (true) { //1s task if (t.elapsed_micro() >= 1000000) { t.reset(); doJob(); } std::this_thread::yield(); } }
上面的代码每秒打印一个字符串



