我有一個子類MyClass
,它繼承自QThread
。如何正確刪除並終止QThread
我創建像這樣與父母到MainWindow
實例(本):
mMyClass = new MyClass("some_value", 1, 5L, this);
我與對象刪除如何Qt的交易的理解是,每一個QObject
,其中有一個父被刪除時,父被刪除。
如果我的程序沒有完成,我得到一個警告QThread: Destroyed while thread is still running
如何解決這一個?我在MainWindow
的解構器中用下面的代碼試了一下。不幸的是它不能正常工作:
if (mMyClass != 0 && mMyClass->isRunning()) {
mMyClass->deleteLater();
mMyClass->quit();
mMyClass->wait();
}
wait()返回什麼?你的線程是否啓動了一個事件循環?也就是說,你在'run()'的實現中調用exec()嗎? –
我不會調用'exec'。 wait()不返回任何東西。 – Niklas