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 :

Compatibilité Qt interface et win32 thread


Sujet :

Multithreading

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut Compatibilité Qt interface et win32 thread
    Bonjour,

    J ai créer une interface Qt via la classe QDialog.
    L'utilisateur, via cette interface, appelle différentes fonctions de calcul.
    Pour ne pas bloquer l'interface, et pour pourvoir afficher la progression du travail lancé en cours, je crée un thread spécifique à chaque fonction de calcul.

    Pour créer ce thread, j utilise un thread win32. Or ça semble bloquer l'interface.
    En utilisant, par contre, un QThread, je n'ai pas ce problème.

    J ai cherché dans la doc pour voir s'il y a une incompatibilité entre le fait d'utiliser une interface Qt et les threads win32 mais je n'ai rien trouvé à ce sujet.

    Le truc embêtant c'est que les fonctions appelées crée à leur tour des threads windows, et que du coup je ne peux pas m en passer.

    Merci pour votre aide

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    En fait il se passe quoi ? Le thread ne se lance meme pas ? Le prog plante ??
    Sinon je ne comprends pas trop l'interet d'utiliser les threads Win32 avec Qt sauf si je crois comprendre que tu utilises du code deja existant qui utilise ce type de thread.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Le thread se lance bien, le prog ne plante pas, mais l'interface ne répond plus, n'est pas rafraichi, elle est bloqué quoi.
    Il faut attendre la fin du thread win32 pour l'interface reprenne la main.
    Je peux utiliser un Qthread pour lancer ma fonction de travail.
    Mais comme cette fonction crée aussi des thread win 32, donc ça ne fait que decaler le problème.

  4. #4
    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,
    normalement rien n'empêche d'utiliser les thread win32 avec Qt tant que tu n'utilise pas de QObject.

    Tu est sur que tu lance bien le tread?
    Peut tu mettre un peu de code?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    tant que j'utilise pas QObject?
    Donc si je veux utiliser QWidget, QDialog, je peux pas utiliser les threads win32 en même temps?

    Sinon, oui mon thread "win32" est bien lancé, j 'ai vérifie au Debug. Je veux bien mettre du code mais je suis pas sur que ça sert à quelque chose

  6. #6
    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
    Citation Envoyé par ooxoo Voir le message
    tant que j'utilise pas QObject?
    Donc si je veux utiliser QWidget, QDialog, je peux pas utiliser les threads win32 en même temps?
    Je voulais dire dans le thread.

    Tous les widget doivent obligatoirement être utilisé exclusivement par le thread principale

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Je viens de m apercevoir que c'est pas le fait de creer mon thread win 32 qui bloque l'interface, mais ce que j'y fais, à l'intérieur, (notamment appels à des fonctions win 32) qui posent des problèmes à mon interface!
    Je vais donc déjà identifier quelle est la fonction bloquante...je dois pouvoir y arriver seul

    Désolé de vous avoir fait perdre du temps sur un faux problème !! et merci bcp !

  8. #8
    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
    Attention, pour pouvoir utiliser un handle windows, il doit normalement être créé dans le thread. Peut être que ton problème viens de là.

Discussions similaires

  1. Interface graphique et thread producteur-consomateur
    Par fockbliss17 dans le forum C#
    Réponses: 6
    Dernier message: 11/12/2010, 14h10
  2. Morceau d'interface dans un thread ?
    Par Zhitoune dans le forum Multithreading
    Réponses: 26
    Dernier message: 01/12/2009, 12h55
  3. Interface graphique et thread
    Par freddyboy dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/06/2007, 15h06
  4. Réponses: 2
    Dernier message: 21/05/2007, 15h09
  5. [win32] threads, suspension et reprise
    Par xilebo dans le forum Windows
    Réponses: 7
    Dernier message: 14/02/2006, 14h24

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