windows通用应用程序将ref类对象传递给本机c++;线 我试图在Windows通用应用程序(Windows 10)中使用C++本机线程,但
发生异常,我得到以下错误:x信息不可用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
将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
}