首页 文章

C简单的定时器/滴答功能

提问于
浏览
3

正如 Headers 所说,我想创建一个简单的计时器/刻度函数,例如5分钟,以便我可以调用另一个函数,然后计时器再次启动,但不使用睡眠或时钟功能 . 那么有没有任何功能或方法,以便它例如在几秒钟内向上或向下计数?谢谢你的帮助 .

1 回答

  • 3

    虽然你说你想避免"clock function",但我没有看到如何在没有时钟的情况下计算5分钟 . 这是一个非常基本但是 portable 的计时器 .

    Result :每5分钟调用一次 foo() 方法 .


    #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();
    }
    

    Notes :

    • 我将一个lambda传递给了线程但是任何可调用的都可以 .

    • std::chrono充满了很酷的东西来操纵日期和时间,你可以用它轻松调整你的计时器 .

相关问题