gpt4 book ai didi

c++ - 如何每 200 秒使 io_service 发布特定功能?

转载 作者:太空宇宙 更新时间:2023-11-04 13:45:02 25 4
gpt4 key购买 nike

我想做一些操作,比如每 200 秒检查一次。如何使 io_service 变量每 200 秒发布一次此操作函数? boost里面有库函数吗?

最佳答案

使用一个deadline_timer,当 async_wait 处理程序触发时,您可以调用任何您想要的函数

#include <boost/asio.hpp>
#include <iostream>

class Timer {
public:
explicit Timer(boost::asio::io_service& io_service) :
_timer( io_service )
{
this->wait();
}

private:
void wait()
{
_timer.expires_from_now(boost::posix_time::seconds(5));
_timer.async_wait([&](const boost::system::error_code& error) {
if (error) {
std::cerr << "Could not wait: " << error << std::endl;
return;
}

std::cout << "Done waiting!" << std::endl;
this->wait();
});
}

private:
boost::asio::deadline_timer _timer;
};

int
main()
{
boost::asio::io_service io_service;
Timer t{io_service};
io_service.run();
}

关于c++ - 如何每 200 秒使 io_service 发布特定功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com