c++的定時(shí)器怎么使用

c++
小億
222
2023-12-04 18:04:12

在C++中使用定時(shí)器可以通過(guò)使用std::chrono庫(kù)來(lái)實(shí)現(xiàn)。以下是一個(gè)使用定時(shí)器的簡(jiǎn)單示例:

#include <iostream>
#include <chrono>
#include <thread>

void timer_callback()
{
    std::cout << "Timer expired!" << std::endl;
}

int main()
{
    // 創(chuàng)建一個(gè)定時(shí)器線程
    std::thread timer_thread([](){
        // 等待 2 秒
        std::this_thread::sleep_for(std::chrono::seconds(2));
        // 調(diào)用定時(shí)器回調(diào)函數(shù)
        timer_callback();
    });

    // 主線程執(zhí)行其他任務(wù)
    std::cout << "Main thread is working..." << std::endl;

    // 等待定時(shí)器線程結(jié)束
    timer_thread.join();

    return 0;
}

在上述示例中,我們創(chuàng)建了一個(gè)定時(shí)器線程,在該線程中等待2秒鐘后調(diào)用timer_callback函數(shù)。主線程在等待定時(shí)器線程結(jié)束之前執(zhí)行其他任務(wù)。運(yùn)行該程序,你會(huì)看到主線程先輸出 “Main thread is working…”,然后2秒鐘后定時(shí)器線程輸出 “Timer expired!”。

以上是使用std::chrono庫(kù)實(shí)現(xiàn)簡(jiǎn)單的定時(shí)器的方法,你也可以根據(jù)需求使用更高級(jí)的定時(shí)器庫(kù),如Boost.Asio庫(kù)來(lái)實(shí)現(xiàn)更復(fù)雜的定時(shí)功能。

0