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 :

boost::thread et Qt


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut boost::thread et Qt
    Bonjour à tous,


    Le chargement de mon application met environs 2 minutes (le temps de rapatrier une assez grosse quantité de données depuis la base de données).

    C'est pourquoi j'ai fait une petite boite de chargement avec une barre de progression au lancement.

    Comme le chargement envoie des requêtes vers la base de données, le temps que la réponse vienne, l'application est figée. C'est domage car il y a un style de progressbar assez sympa où une espèce de lueur parcours régulièrement la zone d'avancement, mais si c'est pas fluide...

    C'est pourquoi j'ai tenté d'utiliser les threads de boost. Malheureusement, et je m'en doutais un peu avant de le faire, mon évennement de lecture des données qui provoque l'avancement d'une barre de progression est lancé depuis le thread dédié au chargement.

    Et je me retrouve avec une erreur assertion Qt m'indiquant que les objets appartenant à un thread ne peuvent être manipulés par un autre thread.

    Y a-t-il une solution de contournement ?


    Merci

    A bientôt

  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
    Pourquoi ne pas utiliser QThread???

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    C'était pour etre rapide, j'étais habitué à boost::thread.

    Je suis en train de changer pour QThread là, voire si ça fonctionne

    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Heu... j'ai pas la méthode "start" avec QThread... c'est normal ?

  5. #5
    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 mister3957 Voir le message
    Heu... j'ai pas la méthode "start" avec QThread... c'est normal ?
    ??? comment cela?
    http://qt.developpez.com/doc/4.4/qthread/#start

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Les threads de Qt sont réentrants, c'est à dire qu'ils permettent de se transmettre des données entre eux.

    Par contre, je ne suis pas sûr que Qt laisse boost::thread mettre son nez là où Qt attend plutôt des QThread.

    Donc dans une application Qt, il est bien plus sûr d'utiliser des QThread.

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

Discussions similaires

  1. Arreter l'execution d'un boost::thread
    Par stranger dans le forum Boost
    Réponses: 9
    Dernier message: 22/05/2007, 18h37
  2. [Débutant] boost::thread non-lvalue
    Par Tymk dans le forum Boost
    Réponses: 16
    Dernier message: 18/11/2006, 14h23
  3. Questions de perfomance avec boost::thread
    Par Rafy dans le forum Boost
    Réponses: 36
    Dernier message: 05/10/2006, 15h21
  4. boost::thread et OpenGL
    Par Kurisu dans le forum Boost
    Réponses: 12
    Dernier message: 19/09/2006, 13h23

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