Qt:使用多线程结束时报错的问题
Posted 答案略
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt:使用多线程结束时报错的问题相关的知识,希望对你有一定的参考价值。
在创建多线程后,如果在关闭程序前对资源没有进行回收,则会弹出错误。
1.一般来说,直接调用线程的quit()方法即可结束进程,回收内存。
2.若在程序运行的过程中意外终止,如强行关闭等,就会出现上面的错误。所以需要如下处理:
对closeEvent进行重写,即在关闭程序前对内存进行回收。使用的方法有
thread->terminate();
thread->wait();
具体实现为:
closeEvent(QCloseEvent *ev) { qDebug()<<"before wait"; thread->terminate(); thread->wait(); qDebug()<<"after wait"; QMainWindow::closeEvent(ev); }
以上是关于Qt:使用多线程结束时报错的问题的主要内容,如果未能解决你的问题,请参考以下文章