Qt5執行緒錯誤:QThread: Destroyed while thread is still running(執行runThread->exit(0))

findumars發表於2019-03-25

背景:

        當前類,編寫接收子執行緒類訊號的槽函式和觸發子執行緒類執行的訊號;

        新建一個子執行緒類,編寫槽函式和訊號,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
版權宣告:本文為博主原創文章,轉載請附上博文連結!

相關文章