1. 程式人生 > >Qt5線程錯誤:QThread: Destroyed while thread is still running(執行runThread->exit(0))

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

文章 原創 delete class 函數 開啟 mov runt 連接

背景:

當前類,編寫接收子線程類信號的槽函數和觸發子線程類執行的信號;

新建一個子線程類,編寫槽函數和信號,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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

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