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

c++定时执行

作者:野牛程序员:2023-08-11 17:17:44 C++阅读 2755

在C++中,要实现定时执行任务,可以使用计时器库或线程库。一个常用的方法是使用std::this_thread::sleep_for()来实现定时等待,另一个是使用第三方库,如std::asyncstd::thread结合std::chrono等。以下是这些方法的示例:

方法一:使用 std::this_thread::sleep_for() 进行定时等待

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

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

方法二:使用 std::async 和 std::chrono 实现定时执行

#include <iostream>
#include <future>
#include <chrono>

void timerFunction(int interval) {
    while (true) {
        std::cout << "定时任务执行了" << std::endl;
        std::this_thread::sleep_for(std::chrono::seconds(interval));
    }
}

int main() {
    int interval = 5;
    std::async(std::launch::async, timerFunction, interval);

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

    return 0;
}

在这两种方法中,可以根据实际需求设置定时任务的间隔和执行内容。需要注意的是,std::this_thread::sleep_for() 方法会阻塞当前线程,可能会导致整个程序阻塞,因此在实际应用中,可能需要更复杂的定时任务管理,例如使用定时器库或其他异步处理方式。


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

最新推荐

热门点击