其实也比较简单,在主线程中调用delete A(这里A是class A new出来的一个对象),然后在calss A的析构函数里执行如下代码:
m_threadrequestInterruption();
m_threadquit();
//m_threadwait();
requestInterruption()按照字面意思是请求中断,这样就可以从阻塞的地方暂时跑出来,然后执行quit来结束这个线程。注意,不要在后面使用wait(),这样的话也会再次被阻塞。
这样的话,在程序退出时,虽然会提示程序异常结束,但是那个阻塞的子线程的确也结束掉了。所以,我将该方法命名为不优雅退出阻塞线程法。
如果在安装Qt过程中出现sdktoolexe应用程序错误,那么首先可以尝试检查 *** 作系统版本是否支持Qt,并重新尝试安装。如果还是无法解决问题,可以尝试在网上搜索支持Qt的第三方驱动程序,以便安装成功。另外,有时候安装失败的原因可能是正在运行的程序或服务阻止了Qt的安装,这时候可以尝试禁止所有程序和服务。
MyWidget w被加入到layout,layout又绑定到w2,那么这棵对象树是w2有layout和w两个子控件。
在程序退出,w2析构时,会析构掉w,然而w又是栈上的对象,会被再次析构。两次析构,引发异常。
这是Qt有明显指出的问题。所以放在对象树上的东西,最好是new出来的。
以上就是关于qt主进程阻塞子线程也不运行了全部的内容,包括:qt主进程阻塞子线程也不运行了、qt安装过程sdktool.exe应用程序错误、本菜鸟写了个Qt程序退出时报异常结束是怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)