Asio C++如何实现定时任务

   2024-10-07 4000
核心提示:在Asio C++中实现定时任务可以使用asio::steady_timer类。asio::steady_timer类提供了在指定时间间隔后执行回调函数的功能。下面

在Asio C++中实现定时任务可以使用asio::steady_timer类。asio::steady_timer类提供了在指定时间间隔后执行回调函数的功能。

下面是一个简单的示例代码,演示了如何使用asio::steady_timer实现定时任务:

#include <iostream>#include <asio.hpp>void print(const asio::error_code& ,           asio::steady_timer* timer){    std::cout << "Hello, world!" << std::endl;    // 设置下一个定时任务,在1秒后执行    timer->expires_after(std::chrono::seconds(1));    // 重新启动定时器    timer->async_wait(std::bind(print,                                std::placeholders::_1,                                timer));}int main(){    asio::io_context io;    asio::steady_timer timer(io, std::chrono::seconds(1));    timer.async_wait(std::bind(print, std::placeholders::_1, &timer));    // 开始事件循环    io.run();    return 0;}

在上面的代码中,我们首先定义了一个print函数,该函数用于打印"Hello, world!"消息并设置下一个定时任务。然后在main函数中创建了一个asio::io_context对象和一个asio::steady_timer对象,设置定时任务的时间间隔为1秒,并启动事件循环。

运行上面的代码,您将看到每隔1秒输出一次"Hello, world!"消息。您可以根据自己的需求修改定时任务的时间间隔和回调函数的实现。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号