C++ 简单定时器/tick 函数

Mag*_*anu 5 c++ timer count

正如标题所说,我想创建一个简单的计时器/滴答函数,例如计算 5 分钟,以便我可以调用其他函数,然后计时器再次启动,依此类推,但不使用睡眠或时钟函数。那么是否有任何函数或方法可以使其以秒为单位向上或向下计数?感谢您的帮助。

qua*_*dev 4

虽然你说你想避免“时钟功能”,但我不知道如何在没有时钟的情况下计算 5 分钟。这是一个非常基本但便携式的计时器。

结果:该foo()方法每 5 分钟调用一次。


#include <thread>
#include <iostream>

void foo()
{
    std::cout << "Hello !\n";   
}

int main()
{
    std::thread([&]
    {
        while(true)
        {
            // Wait 5 minutes
            std::this_thread::sleep_for(std::chrono::minutes(5));
            // Call our method
            foo();
        }
    }).detach();

    // Execution continues ...
    std::cin.get();
}
Run Code Online (Sandbox Code Playgroud)

注意事项:

  • 我将 lambda 传递给线程,但任何可调用的都可以。
  • std::chrono充满了操纵日期和时间的很酷的东西,你可以用它轻松调整你的计时器。