C++ 如何使io_service post每200秒具有特定功能?

C++ 如何使io_service post每200秒具有特定功能?,c++,boost,boost-asio,C++,Boost,Boost Asio,我想做一些操作,比如每200秒检查一次。如何使io_服务变量每200秒发布一次此操作函数?boost中有任何库函数吗?使用一个截止时间计时器,该计时器的到期时间为未来200秒,当异步等待处理程序启动时,您可以调用所需的任何函数 #include <boost/asio.hpp> #include <iostream> class Timer { public: explicit Timer(boost::asio::io_service& io_serv

我想做一些操作,比如每200秒检查一次。如何使io_服务变量每200秒发布一次此操作函数?boost中有任何库函数吗?

使用一个
截止时间计时器
,该计时器的到期时间为未来200秒,当
异步等待
处理程序启动时,您可以调用所需的任何函数

#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();
}
#包括
#包括
班级计时器{
公众:
显式计时器(boost::asio::io_服务和io_服务):
_计时器(io_服务)
{
这个->等待();
}
私人:
无效等待()
{
_timer.expires_from_now(boost::posix_time::seconds(5));
_timer.async_wait([&](const boost::system::error_code&error){
如果(错误){

std::cerr使用
deadline\u timer
。从另一个函数调用函数,调用
io\u服务。在这个函数中,使用
async\u wait
将这个函数作为计时器上的处理程序。明白了!!谢谢!!