我正在尝试将我的类实例传递给线程并从线程返回处理后的对象。我在谷歌上搜索了 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>'`
我可以知道我错了什么以及如何解决吗?
非常感谢。:-)