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:使用多线程结束时报错的问题的主要内容,如果未能解决你的问题,请参考以下文章

Qt开发编译时报"undefined reference to"问题的解决方案

qt 多线程

qt多个线程调用同一个类怎么处理

qt多线程的问题

谁能说一下在Qt中使用多线程都有哪些需要注意的事项呢?

本菜鸟写了个Qt程序退出时报异常结束是怎么回事