【发布时间】:2013-08-14 21:23:52
【问题描述】:
我正在尝试将我的类实例传递给线程并从线程返回已处理的对象。我在谷歌上搜索了 C++ 多线程,发现 std::promising 可能会有所帮助。
但是,我一开始就被困住了。这是我的代码:
void callerFunc()
{
//...
std::promise<DataWareHouse> data_chunks;
// DataWareHouse is my customized class
//data_chunks has a vector<vector<double>> member variable
std::thread(&run_thread,data_chunks);
// ............
}
void run_thread(std::promise<DataWareHouse> data_chunks)
{
// ...
vector<vector<double>> results;
// ...
data_chunks.set_value(results);
}
以上代码产生错误:
`error C2248: 'std::promise<_Ty>::promise' : cannot access private member declared in class 'std::promise<_Ty>'`
我可以知道我错了什么以及如何解决它吗?
非常感谢。 :-)
【问题讨论】:
标签: c++ multithreading return-value std promise