如何从升压线程获得返回值
How do I get return values from a boost thread?
我想做一些简单的事情,例如
void returnVal(int a, int &b)
{
b = a;
}
int main()
{
int b = 0;
boost::thread t(returnVal,1,b);
t.join();
}
这会引发错误。无法转换int&到int。必须有一种简单的方法来获得boost的返回值,如果没有人对为什么有体面的解释?
boost::thread
构造函数使用 boost::bind
。boost :: bind通过副本默认值进行参数,所以
b = a;
从Main修改b
的副本。您需要使用boost::ref()
将b
的引用传递到thread
:
boost::thread t(returnVal,1,boost::ref(b));
相关文章:
- 是否可以访问非线程安全容器内指针指向的值(线程安全映射中的条目)?
- 如何在另一个线程中关闭 MFC 模式对话框并获取对话框返回值?
- 有没有办法为任何函数编写通用代码,以便它可以(异步)执行并从线程池中获得返回值?
- 如何在 CUDA 中的块中返回其他线程
- 如何从升压线程获得返回值
- C++ 布尔复合赋值线程安全
- 什么是线程锁返回代码值
- C 多线程返回值
- 如何在不使用 C++/C 中的阻塞函数的情况下将值从线程返回到主函数
- 提升多线程向量的返回值
- 如何从线程函数返回值
- 如何从调用的函数获取返回值,该函数在 TBB 中的另一个线程中执行
- 从C++11中的线程返回一个值
- 如何从线程返回值_beginthread
- 在不使用 Boost::p Romise 的情况下在 boost 线程中返回值
- C++分段错误(核心转储)错误 - 强制转换指针/将函数值返回到线程
- 传递对象并从线程调用中获取返回值
- 从线程 MFC 将返回值发送到对话框
- C++引用从多线程返回值
- 带有函数返回值的C++线程