Comment faire pour supprimer correctement et de mettre fin à QThread

J'ai eu une sous-classe MyClass qui hérite de QThread.

Je le créer comme ça avec un parent à l' MainWindow instance (ce):

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

Ma compréhension de la façon dont Qt traite avec suppression de l'objet, c'est que chaque QObject, qui a un parent est supprimé quand le parent est supprimé.

Si mon programme n'finition je reçois un avertissement QThread: Destroyed while thread is still running

Comment puis-je résoudre ce un? Je l'ai essayé avec le code suivant dans le déconstructeur de MainWindow. Malheureusement, il ne fonctionne pas correctement:

if (mMyClass != 0 && mMyClass->isRunning()) {
    mMyClass->deleteLater();
    mMyClass->quit();
    mMyClass->wait();
}
Ce n' wait() retour? Est-ce que votre démarrage du thread, une boucle d'événement? C'est, ne vous appelez exec() de la mise en œuvre de run()?
Je n'appelle pas exec. wait() ne retourne rien.

OriginalL'auteur Niklas | 2014-07-22