问题描述
我正在尝试将数据发布到io_context上,如果我使用newdata方法(不带参数)将post绑定,它将被调用,但是如果我传递任何参数,它将无法调用newdata方法。
std::shared_ptr< boost::asio::io_context >ioc = std::make_shared<boost::asio::io_context>();
:
ioc->post(boost::bind(&myclass::newdata,this)); /// <-- this get called
ioc->post(boost::bind(&myclass::newdata,this,1)); /// <-- this get Failed,no compile time error
//我尝试使用boost :: function,但是编译失败
boost::function<void(int>)> p(boost::bind(&myclass::newdata,_1));
ioc->post(p(1)); // <-- compile time error
解决方法
正在调用ioc-> post()的线程没有ioc-> run(),只要我把它起作用就可以了。