如果在继承了QThread的子线程类的run函数执行过程中强行delete掉子线程,会出现闪退报错。
比较好的方法是连接QThread的finish信号与QObject的deleteLater函数,线程执行完后在创建子线程所在线程的事件循环中释放子线程
但是这种方法需要保证创建子线程函数所在线程的事件循环正常开启,如果是在主线程那一定是开启的,但如果是在子线程中再创建一个子线程,并且不方便开启事件循环,deleteLater则不会生效
可以使用terminate来强制停止运行,但是terminate方法是不被官方建议的
可以在继承QThread的子类析构函数中先后调用quit和wait函数,即使delete了也会先等run函数工作线程执行完再析构
08-16
629
629
10-12
2128
2128

被折叠的 条评论
为什么被折叠?



