我有一个名为 overlay_server 的类,它有一个公共方法
void member_list_server(boost::asio::io_service &io_service){
现在我想在一个新线程中运行它。所以我创建了一个新线程,并在其构造函数中使用了 bind。
在我在 void member_list_server 函数中创建 io_service 之前。但是现在我正在尝试在 main 中创建一个 io_service 对象并将其传递给我得到错误的这个线程?
int main(){
boost::asio::io_service io_service_;
overlay_server overlay_server_(8002);
boost::thread thread_(
boost::bind(&overlay_server::member_list_server, overlay_server_, io_service_)
);
为什么我会收到错误消息
错误 C2248:“boost::noncopyable_::noncopyable::noncopyable”:无法访问在类“boost::noncopyable_::noncopyable”中声明的私有成员
我还将创建需要 io_service 的其他类的实例。最好的方法是什么,我应该在 main 中创建一个 io_service 对象并将其传递给所有线程吗?
或者在我将来创建的所有线程中创建一个单独的线程?