Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows通用应用程序将ref类对象传递给本机c++;线 我试图在Windows通用应用程序(Windows 10)中使用C++本机线程,但_C++_Multithreading_Win Universal App_Native_C++ Cx - Fatal编程技术网

windows通用应用程序将ref类对象传递给本机c++;线 我试图在Windows通用应用程序(Windows 10)中使用C++本机线程,但

windows通用应用程序将ref类对象传递给本机c++;线 我试图在Windows通用应用程序(Windows 10)中使用C++本机线程,但,c++,multithreading,win-universal-app,native,c++-cx,C++,Multithreading,Win Universal App,Native,C++ Cx,发生异常,我得到以下错误:x信息不可用 将ref-obj传递到此线程的正确形式是什么?C++/CX引用具有堆栈语义。只要obj超出范围,ref计数就会下降。如果线程函数到那时还没有增加ref计数,那么对象就会被销毁,留下一个悬空指针的线程。您要么需要实现同步,以便知道线程何时完成初始化,要么使用对对象生命周期提供更多控制的方法(如WRL)。 classname^obj=ref new classname(); std::thread t1(function,obj);//or thread t

发生异常,我得到以下错误:x信息不可用


将ref-obj传递到此线程的正确形式是什么?

C++/CX引用具有堆栈语义。只要
obj
超出范围,ref计数就会下降。如果线程函数到那时还没有增加ref计数,那么对象就会被销毁,留下一个悬空指针的线程。您要么需要实现同步,以便知道线程何时完成初始化,要么使用对对象生命周期提供更多控制的方法(如WRL)。
classname^obj=ref new classname();
std::thread t1(function,obj);//or  thread t1(function,std::ref(obj));//
t1.detach();
--------------------------------
function(classname^x){
//do something on x
}