l'appel de QThread.méthode exec() est nécessaire dans QThread?

Je n'appelle pas exec() dans mon code, mais la timer et QUdpSocket fonctionne bien. Est exec() l'habitude d'attendre pour un event continuer?

Mise à JOUR: le timer a été de travailler, parce que je ne l'avait pas appelé moveToThread(this) sur le QThread, ce qui signifiait que le QThread était en fait encore partie de la main thread. Comme pour QUdpSocket eh bien, j'aide les bureaux de functions. Donc il n'a pas besoin de travailler avec signals.

ASTUCE: si vous avez besoin de faire init choses, qui nécessite une event loop dans votre QThread, vous pouvez delay appel moveToThread jusqu'à ce que vous n'avez pas besoin de la signals plus, c'est pratique quand le programme est en cours de chargement. Vous n'avez pas besoin de l'appeler dans le constructeur (on pourrait appeler cela de l'intérieur run() par exemple), il suffit de copier le this QThread pointeur vers une variable et faire la call plus/ailleurs à l'aide du pointeur.

OriginalL'auteur yan bellavance | 2010-02-26