Qt Signaux et slots de la sécurité des threads
Disons que j'ai un changement de signal connecté à un slot de notification. Si le changement signal est émise, le informer fente va commencer l'exécution.
Maintenant ce qui se passe si une deuxième changement de signal est émis et la première informer fente n'a pas fini son exécution?
Est la deuxième fente lancé simultanément avec le premier? Et si oui, est-Qt de la manipulation du fil de sécurité ou c'est au programmeur de manipuler?
Vous devez vous connecter pour publier un commentaire.
Cela dépend du type de connexion que vous avez spécifié via l'appel de
connect
fonction. Le seul moyen de quand le logement sera lancé simultanément est si vous avez spécifiéQt::DirectConnection
ET l'émission du signal dans le thread différent de la fente de fil. Si vous omettez le type de connexion, il seraitQt::AutoConnection
. Dans ce cas, si vous émettez un signal à partir d'un fil, et l'attraper dans un autre (par exemple dans les principaux thread GUI) - Qt va mettre un logement à l'appel de la file d'attente de messages et de faire tous les appels de manière séquentielle. Lire ceci pour plus d'info - http://qt-project.org/doc/qt-4.8/threads-qobject.html#signals-and-slots-across-threads