gpt4 book ai didi

c++ - Visual Studio13 创建线程和优化流程

转载 作者:行者123 更新时间:2023-11-28 06:45:00 25 4
gpt4 key购买 nike

我在 VS13 中编写多线程

函数声明:

void getColorImage(HANDLE &colorEvent, HANDLE &colorStreamHandle, Mat &colorImage);
void getDepthImage(HANDLE &depthEvent, HANDLE &depthStreamHandle, Mat &depthImage);
void getSkeletonImage(HANDLE &skeletonEvent, Mat &skeletonImage, Mat &colorImage, Mat &depthImage, ofstream& myfile);

int main()
{
// this is inside a while loop

std::thread first(getColorImage, colorEvent, colorStreamHandle, colorImage);
std::thread second(getDepthImage, depthEvent, depthStreamHandle, depthImage);
std::thread third(getSkeletonImage, skeletonEvent, skeletonImage, colorImage, depthImage, myfile);

first.join();
second.join();
third.join();
}

但是,我得到一个错误:

Error 1 error C2280: 'std::basic_ofstream>::basic_ofstream(const std::basic_ofstream> &)' : attempting to reference a deleted function c:\program files (x86)\microsoft visual studio 12.0\vc\include\type_traits 1545 1 Skeleton_RGBDepth_DataAcquisition2013

不知道为什么...有人可以帮忙吗?

最佳答案

std::thread 构造函数,与 std::bind 相同,按值获取其所有参数。但是 std::ofstream 有一个 deleted 复制构造函数,因此会出现错误。

std::ref 包装所有应该通过引用传递的参数。

关于c++ - Visual Studio13 创建线程和优化流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25175120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com