0

很抱歉问了这样一个基本问题,但到目前为止,我在网上看到的所有使用基本期限计时器的示例都只是按如下方式初始化计时器

boost::asio::deadline_timer timer(ioservice);

如何将此计时器声明为类的一部分。如果我尝试类似

boost::asio::deadline_timer timer;

那么如何将 ioservice 对象分配给它呢?

我没有看到类似timer.ioservice = ioservice的选项

4

1 回答 1

2

您必须将 IO 服务的引用传递给周围类的构造函数,然后在构造函数初始化列表中构造计时器:

class ClassWithTimer
{
public:
    ClassWithTimer(boost::asio::io_service &io_service)
        : timer(io_service)  // Constructs the timer
        { }

private:
    boost::asio::deadline_timer timer;
};
于 2012-08-22T11:10:10.053 回答