【发布时间】:2013-10-05 23:00:34
【问题描述】:
我想创建一个在另一个线程中运行的函数版本:
errType sendMessage(Message msg,Message* reply);
像这样:
errType async_sendMessage(Message msg,Message* reply){
boost::thread thr = boost::thread(boost::bind(&sendMessage, this));
return (return value of function);
}
我想要做的是将参数传递给函数并存储返回值。 我该怎么做?
【问题讨论】:
-
您是否正在寻找类似std::async 的东西而不使用 C++11?
-
谢谢。这回答了我一半的问题。另一点是我如何传递 in 数据
-
boost::thread构造函数复制您提供的数据。您可以使用boost::ref避免复制。 -
@nabulke 但这显然为数据竞争打开了一个窗口。考虑将参数移动到线程。通常不推荐使用线程和共享(可变)状态(当然不仅仅是为了“避免复制”)
标签: c++ boost-thread boost-bind