Qt5线程错误:QThread: Destroyed while thread is still running(执行runThread->exit(0))


背景:

        当前类,编写接收子线程类信号的槽函数和触发子线程类执行的信号;

        新建一个子线程类,编写槽函数和信号,MyClass *m_MyClass=new MyClass();

        新建一个线程对象QThread *runThread=new QThread();

        使用connect连接当前类与子线程的信号槽,以便触发线程及接收线程执行结果;

        使用m_MyClass.moveToThread(runThread),将子线程类移到线程中执行;

        runThread->start(),开启线程。

 

**在当前线程的析构函数中,如果先删除runThread再删除m_MyClass,则会出现错误QThread: Destroyed while thread is still running

**正确的写法应该是:

   runThread->exit(0);

   delete m_MyClass;

   delete runThread;
---------------------
作者:爱因
来源:CSDN
原文:https://blog.csdn.net/xbnlkdbxl/article/details/76828071
版权声明:本文为博主原创文章,转载请附上博文链接!


免责声明!

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



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