Wie man richtig löschen und QThread beenden

Habe ich eine Unterklasse MyClass was erbt von QThread.

Ich es schaffen, wie dies mit einem Elternteil die MainWindow - Instanz (this):

mMyClass = new MyClass("some_value", 1, 5L, this);

Mein Verständnis, wie Qt beschäftigt sich mit dem löschen von Objekten ist, dass jeder QObject, die ein Elternteil hat, der wird gelöscht, wenn das übergeordnete gelöscht wird.

Wenn mein Programm fertig stellen, ich bekomme eine Warnung QThread: Destroyed while thread is still running

Wie kann ich dieses Problem beheben up? Ich habe es versucht mit dem folgenden code in der deconstructor von MainWindow. Leider funktioniert es nicht richtig:

if (mMyClass != 0 && mMyClass->isRunning()) {
    mMyClass->deleteLater();
    mMyClass->quit();
    mMyClass->wait();
}
Was bedeutet wait() zurück? Hat Ihr thread starten ein Ereignis-Schleife? Das ist, nennst du exec() in Ihrer Umsetzung run()?
Ich glaube nicht, rufen exec. wait() nichts zurück.

InformationsquelleAutor Niklas | 2014-07-22

Schreibe einen Kommentar