1

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

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

1 回答 1

1

您可以发布任何符合Completion Handler 类型要求的内容。您可以使用而不是 c++11 lambdaboost::function

boost::asio::io_service io_service;
io_service.post( boost::bind(&doInMainThread) );

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

io_service.post( &doInMainThread );

假设doInMainThread()满足 Completion Handler 类型要求。

于 2013-11-11T23:16:13.720 回答