在創建多線程后,如果在關閉程序前對資源沒有進行回收,則會彈出錯誤。

1.一般來說,直接調用線程的quit()方法即可結束進程,回收內存。
2.若在程序運行的過程中意外終止,如強行關閉等,就會出現上面的錯誤。所以需要如下處理:
對closeEvent進行重寫,即在關閉程序前對內存進行回收。使用的方法有
thread->terminate();
thread->wait();
具體實現為:
closeEvent(QCloseEvent *ev) { qDebug()<<"before wait"; thread->terminate(); thread->wait(); qDebug()<<"after wait"; QMainWindow::closeEvent(ev); }
