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);

    }

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM