Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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
C++ c++;QThread和boost回调函数_C++_Qt_Boost_Callback - Fatal编程技术网

C++ c++;QThread和boost回调函数

C++ c++;QThread和boost回调函数,c++,qt,boost,callback,C++,Qt,Boost,Callback,我想知道是否有任何方法可以检查boost回调功能的有效性 问题如下: 甲级; 乙级; 在类A的初始化函数中,完成以下操作 boost::函数回调 使用名称空间boost::lambda; call_back=bind(&A::callback_在准备之后,这个,boost::lambda::_1) 问题是回调是从一个QThread调用的,在从QThread调用a::callback\u之后,从应用程序中删除a的对象(这是应用程序中的一个用例) 因此,应用程序在访问A中的数据成员时退出 有没有办法

我想知道是否有任何方法可以检查boost回调功能的有效性

问题如下:

甲级; 乙级;

在类A的初始化函数中,完成以下操作

boost::函数回调

使用名称空间boost::lambda; call_back=bind(&A::callback_在准备之后,这个,boost::lambda::_1)

问题是回调是从一个QThread调用的,在从QThread调用a::callback\u之后,从应用程序中删除a的对象(这是应用程序中的一个用例)

因此,应用程序在访问A中的数据成员时退出

有没有办法检查回拨功能的有效性


请回答

您确实在问是否有任何方法可以知道某个特定对象已被删除,可能是在另一个线程中。这取决于你的代码来处理类似的东西——毕竟是你的代码通过设置某种标志来执行删除操作。

我还没有使用boost::function,所以我不知道它在这种情况下是否有效,但避免线程化应用程序中指针悬空的最直接方法是std::tr1::weak\u ptr。这可以用于boost::Function声明吗?