如何使用Boost asio io_context post绑定参数?

问题描述

我正在尝试将数据发布到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(),只要我把它起作用就可以了。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...