Question

I ai une classe dérivée QThread qui communique avec le fil principal en envoyant QEvents à elle.

Quelle est la meilleure façon pour le thread principal pour communiquer avec le second fil?

Le fil principal a un pointeur vers le deuxième.

Était-ce utile?

La solution

La meilleure façon de communiquer entre des objets dans Qt est d'utiliser des signaux et des fentes. Il est un moyen de thread-safe qui est géré par la boucle d'événements et ne nécessite aucun verrouillage de votre part. Vous pouvez également utiliser des événements, bien que l'utilisation semble un peu bizarre -. Un événement est une notification de quelque chose qui se passe, pas un outil pour discuter

Vous pouvez également utiliser des primitives de filetage comme QMutex, QSemaphore, QWaitCondition et QReadWriteLock (comme un QMutex, mais comme il nom l'indique, vous permet de verrouiller soit pour la lecture ou l'écriture, pas les deux en même temps).

Vous devriez lire la documentation Qt, en particulier, je vous recommande de commencer avec le Support fil dans Qt .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top