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 :

QMetaObject::invokeMethod et type de connexion


Sujet :

Multithreading

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut QMetaObject::invokeMethod et type de connexion
    Bonjour,

    J'utilise QTconcurrent map qui appel le thread downloadImages dans lequel je fait un appel a invokeMethod et je voulais savoir pourquoi le slot que je veux appeler (SaveImages)
    dans celui ci ne s'appelle que quand je met le type de connection à Qt:irectConnection, mais ne fonctionne pas avec les types de connections suivantes,
    Qt::QueueConnection et Qt::AutoConnection.

    downloadImages est une fonction statiques qui n'est pas dans la classe, en la mettant dans la calsse ca ne fonctionne pas aussi.

    J'utilise aussi un singleton comme TextHtml::getInstance() car le mot clé this ne fonctionne pas dans une fonction statique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    QVector<QString> qUrl;
    ...
    ...
     QFutureWatcher<void> futureWatcher;
     futureWatcher.setFuture(QtConcurrent::map(qUrl, &downloadImages));
    futureWatcher.waitForFinished();
     
    static void downloadImages(const QString & url)
    {   
     
         bool ret = 0;
         ret = QMetaObject::invokeMethod(TextHtml::getInstance(), "saveImages", Qt::DirectConnection, Q_ARG(const QString&, url));
    }
     
    void TextHtml::saveImages(const QString & url)
    {    
        qDebug() << url;
     
    }
    Merci de votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    J'ai repris un code que j'utilisais et qui fonctionnait, donc problème résolu, en fait j'ai l'impression que les fonctions Qtconcurrent fonctionne bien quand il y a une boucle dans la thread
    comme j'utilise le progressDialog, en faisant pg.exec sa fonctionne.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/01/2008, 18h59
  2. Réponses: 4
    Dernier message: 28/02/2007, 15h24
  3. Réponses: 1
    Dernier message: 12/01/2007, 12h19
  4. [IdSmtp] Type de connexion
    Par aityahia dans le forum Delphi
    Réponses: 5
    Dernier message: 16/07/2006, 22h42
  5. [Système] Type de connexion ?
    Par grinder59 dans le forum Langage
    Réponses: 9
    Dernier message: 17/05/2006, 13h47

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