Comment imprimer l'ID de thread en utilisant qDebug()
sur l'environnement Windows de Qt
.ID de thread dans Qt
Répondre
Je suppose que vous voulez l'ID de fil du fil en cours d'exécution (et non l'identifiant de fil d'un objet QThread spécifique):
qDebug() << QThread::currentThreadId();
choses à considérer: La méthode retourne une plate-forme id spécifique (vérifiez le docs). Dans Windows, vous ne pouvez pas utiliser cet ID avec les fonctions de l'API Win32, car il renvoie un pseudo-ID et non l'identifiant réel du thread.
Si votre application s'exécute uniquement sous Windows et que vous avez besoin de faire quelque chose de significatif avec l'ID de thread, il serait probablement préférable d'utiliser GetCurrentThreadId().
Sous Windows, les applications se "détachent" normalement de la ligne de commande lorsque vous les exécutez. Si vous ajoutez
win32:CONFIG+=console
vos applications bloquent l'invite de commande et impriment les instructions qDebug.
Depuis une implémentation sous-jacente de QThread est pthreads, vous pouvez utiliser (I "m en supposant que vous voulez un ID utilisable)
pthread_t = pthread_self();
à partir du fil qui est en cours d'exécution.
La valeur retournée par QThread :: currentThreadId() n'est pas portable
Ce que vous pourriez avoir voulu dire: http://doc.qt.nokia.com/4.7/qthread.html#currentThreadId – mbx
-1 Depuis la question demande spécifiquement comment récupérer l'ID de thread dans Qt. Qt prend en charge plusieurs plates-formes. –
- 1. Exécution d'un processus ou d'un thread séparé dans Qt
- 2. ID de thread Windbg après StackOverflow et arrêt du processus
- 3. QT + Comment appeler un emplacement à partir d'un code C++ personnalisé s'exécutant dans un thread différent
- 4. URL id Bar = 1 Dans ID jQuery
- 5. Pointeurs intelligents dans Qt
- 6. Autorisations de thread dans ASP.NET
- 7. rand() n'obéit pas srand() dans Qt Creator
- 8. Comment puis-je obtenir un ID de thread à partir d'un pthread_t arbitraire?
- 9. BackgroundWorker OnWorkCompleted lève l'exception de thread-thread
- 10. Thread Terminer dans Symbian
- 11. Liaison de Qt dans une bibliothèque dynamique
- 12. Obtenez plusieurs valeurs de l'utilisateur dans Qt?
- 13. intrication de la parcelle dans Qt gui
- 14. Créer une base de données dans QT
- 15. Qt - création de QPainter
- 16. Fenêtre Internet Explorer dans Qt?
- 17. Fenêtre Mac HUD dans Qt
- 18. charge libavcodec dans Qt-Projekt
- 19. Vidéo dans l'application Qt S60?
- 20. Qt: Widget personnalisé dans QScrollArea
- 21. desktopdock ou stardock dans Qt
- 22. Select() ne fonctionne pas dans le thread
- 23. Sur un service Web C#, puis-je trouver un ID de thread unique ou un ID à des fins de journalisation?
- 24. Documentation de Ruby Qt
- 25. problème de conception qt
- 26. LabVIEW bloquant les signaux Qt?
- 27. Sous-id, le suivi-id ou id site dans http://cj.com buyUrl
- 28. Gestion des exceptions de thread dans WCF
- 29. ID de transaction dans MySQL Trigger
- 30. glutPostRedisplay dans un thread différent
Est-ce encore correct? Je vois que currentThreadId() retourne un handle (http://qt-project.org/doc/qt-4.8/qthread.html#currentThread), qui sera vraisemblablement différent à chaque fois qu'il est appelé Voulez-vous pas utiliser QThread :: cur rentThread() à la place, qui est un pointeur vers la structure de données de thread? –