C ++:使用io.post和bind命令从boost线程执行主线程中的函数

时间:2013-11-11 23:09:35

标签: c++ multithreading boost c++11 boost-asio

主线程中执行doInMainThread()的boost线程中的以下命令应如何在没有c ++ 11的情况下(使用boost的bind函数)?

//c++11 version, how should I write this without c++11?
io.post([=] { doInMainThread(); });

1 个答案:

答案 0 :(得分:1)

您可以发布符合Completion Handler type requirements的任何内容。您可以使用boost::function

代替c ++ 11 lambda
boost::asio::io_service io_service;
io_service.post( boost::bind(&doInMainThread) );

或者如果您不想使用boost::bind,函数指针应该可以正常工作

io_service.post( &doInMainThread );

假设doInMainThread()符合完成处理程序类型要求。