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 :

Appeler un QThread dans une classe non-QObject ?


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut Appeler un QThread dans une classe non-QObject ?
    J'ai créé un QThread, mais j'ai un soucis pour l'appeler dans une classe A qui n'est pas un QObject,

    ne serait ce que parceque je ne peux rien passer en argument de Qthread(QObject*)

    Comment puis je faire ?

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Citation Envoyé par ttone Voir le message
    J'ai créé un QThread, mais j'ai un soucis pour l'appeler dans une classe A qui n'est pas un QObject,

    ne serait ce que parceque je ne peux rien passer en argument de Qthread(QObject*)

    Comment puis je faire ?
    Peut être que le concurrent son plus adapté
    http://qt.developpez.com/doc/latest/...ntrun.html#run

    sinon, si tu peut expliquer un peu plus ce que va faire ta thread et ce que tu veut passer en paramètre

  3. #3
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Je veux lancer n traitements numériques en parallèles, j'ai donc exporté le traitement d'une méthode vers un QThread.

    Voilà en fait je développe à 4 mains,
    je récupère un code tel que :

    A:QMainWindow hérite de B
    B hérite de C

    B et C ne sont pas des Q_Object

    Je veux lancer un multithreading dans C.

    Ca a pas l'air gagné en QThread, puisque du coup il n'y a pas de parent référent.


    En résumé j'ai un coreAlgo en C, qui s'étoff en B et devient GUI en A.
    J'ai placé l'algorithme de fond dans un QThread X, que j'instancie n fois dans C, ou enfin je lance mes n thread->start()


    Peut être que le concurrent son plus adapté
    pas faux, il faut que j'étudie ca.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Citation Envoyé par ttone Voir le message
    Ca a pas l'air gagné en QThread, puisque du coup il n'y a pas de parent référent.
    est alors???

    Es ce que ces thread doivent s'exécuter en mêm temps en parallèle?

    si non :
    il te serait peut profitable que tu regarde Qtconcurent :
    http://qt.developpez.com/doc/latest/qtconcurrent.html
    genre map

    Ou peut être un pool de thread :
    http://qt.developpez.com/doc/latest/qthreadpool.html

  5. #5
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Es ce que ces thread doivent s'exécuter en mêm temps en parallèle?
    Oui c'est le but.

    Meme si je dois effectivement aller vers les docs que tu as linké, mon probleme est la classe instanciant les threads et / ou le pool de thread.

    Cette classe n'est pas QObject.

    Au niveau de l'argument si je lui met 0 j'ai un undefined symbol, si je lui met this, j'ai une erreur.

    Dans tous les cas meme si je passe par un pool je devrait l'instancier absolument dans cette classe.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Citation Envoyé par ttone Voir le message
    Oui c'est le but.
    Oublie les Qtconcurent alors.
    Ou est ton problème??? une QThread n'as pas besoin de parent pour être utilisée

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/01/2013, 10h00
  2. Réponses: 6
    Dernier message: 31/08/2006, 14h54
  3. [VB.Net] Appeler un cookie dans une classe
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/06/2006, 23h47
  4. Appel de fonction dans une classe
    Par saint-pere dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2006, 22h13
  5. Appel de fonction dans une classe
    Par Seth77 dans le forum Langage
    Réponses: 8
    Dernier message: 16/01/2006, 10h32

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