当前位置:首页 C++ > 正文

C++定时器实现定时任务

作者:野牛程序员:2023-08-11 17:16:19 C++阅读 3204

在C++中,可以使用不同的库来实现定时任务,其中一个常用的库是 std::threadstd::chrono,它们结合起来可以实现定时器功能。以下是一个简单的示例,展示如何使用这两个库来实现定时任务:

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

void timerFunction() {
    while (true) {
        std::this_thread::sleep_for(std::chrono::seconds(5)); // 等待5秒
        std::cout << "定时任务执行了" << std::endl;
    }
}

int main() {
    std::thread t(timerFunction); // 创建线程执行定时任务函数

    // 主线程继续执行其他任务
    for (int i = 0; i < 10; ++i) {
        std::cout << "主线程执行第 " << i + 1 << " 个任务" << std::endl;
        std::this_thread::sleep_for(std::chrono::seconds(1));
    }

    t.join(); // 等待定时任务线程结束
    return 0;
}

在这个示例中,使用了 std::thread 创建一个新的线程,该线程会循环执行 timerFunction(),在函数内使用 std::this_thread::sleep_for() 函数来实现定时等待。在主线程中,执行了一些其他任务,然后使用 std::this_thread::sleep_for() 函数来模拟任务的执行时间。

需要注意的是,这只是一个简单的示例,实际的定时任务可能需要更复杂的管理和控制,可能需要使用更专业的定时库或框架,例如 Boost.Asio 或者其他定时器库。另外,C++11 引入了 std::asyncstd::future,也可以用来实现异步任务,包括定时任务。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击