IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Multithreading Discussion :

QThread et autres functions [QThread]


Sujet :

Multithreading

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 8
    Points
    8
    Par défaut QThread et autres functions
    Bonjour à tous,
    J'aimerais avoir une information concernant le QThread :

    Je possède une classe qui hérite de QThread qui se nomme MonThread,
    Dans cette classe, la fonction constructeur MonThread::MonThread(), comporte la fonction connect() pour faire le lien entre un SIGNAL et un SLOT.

    J'aimerais savoir si quand un événement est déclenché, le code a l’intérieur est bien exécuté en Thread (arrière plan) ou il est bloquant par rapport au thread principal (application).

    Merci, en vous souhaitant de bonnes fêtes !

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonjour,

    En général, l'autoconnection, par défaut dans un connect, détermine si le connect doit effectuer un appel direct depuis le thread appelant ou bien placer l'appel en file d'attente, de sorte que le thread récepteur le traite une fois qu'il pourra traiter les événements en attente. Cependant, cet autoconnect va être déterminé au moment du connect et non après, donc si le thread n'est pas lancé avant le connect, Qt:: DirectConnection sera choisi vu que l'objet émetteur et récepteur seront dans le thread qui crée le nouveau thread (je ne sais pas si ça vous paraît clair). En général, pour être sûr que mon thread va bien traiter de lui-même le slot, je préfère toujours placer comme dernier argument du connect Qt::QueuedConnection. Après, tout dépend de ce que vous placez dans votre thread. Si vous réimplémentez votre méthode run() en lui plaçant un while (1) dedans, vous allez écraser la boucle d'événements du QThread, ce qui fait que votre slot ne sera jamais appelé. Une lecture associée pourra vous intéresser, concernant la programmation de thread avec Qt sans réimplémenter la méthode run, via moveToThread : http://qt-labs.developpez.com/thread...-movetothread/

    Bonne journée et bonnes fêtes,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    salut.
    1- QThread ne va pas exécuter ses slots dans le thread qu'il interface.
    2- movetothread d'un QThread vers lui même est déconseiller : http://qt.developpez.com/faq/?page=m...-signaux-slots

    Tu peut regarder cette qr : http://qt.developpez.com/faq/?page=m...-signaux-slots

    sinon,l'article que t'as donnée de Amnell est trés bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] autre functions de FPDF
    Par ass_dev dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/05/2013, 21h46
  2. Dois-je utiliser QThread ou autre ?
    Par caymus dans le forum Débuter
    Réponses: 0
    Dernier message: 08/02/2013, 18h19
  3. probleme de transfert de variables d une function a l autre
    Par saadzouiten dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 26/09/2008, 11h55
  4. Function VBA recopiant un range à un autre endroit que la fonction
    Par oliv1105 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/07/2008, 14h15
  5. Perte de valeurs d'une function à une autre
    Par Baptiste Wicht dans le forum VBScript
    Réponses: 5
    Dernier message: 08/11/2007, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo