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