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 :

Erreur console, QCoreApplication


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut Erreur console, QCoreApplication
    Bonsoir,

    Je présente mon problème : J'ai un thread de réception de packets et un autre qui gère tout le reste (affichage. . .).
    J'ai été amené à coder tel qu'une fonction d'affichage, déclarée dans le thread principal, est appelé dans le thread de réception. Et, dans cette fonction, à chaque appel d'une variable également déclarée dans le thread principale, Qt me sort un message dans la console, le voici :
    "QCoreApplication::sendPostedEvents: Cannot send posted events for object in another thread".

    En apparence cela n'a aucune répercutions sur mon programme, malgré qu'il est planté tout à l'heure d'une cause inconnue mais après quelques répétitions ça n'avait pas l'air de réitérer. .
    Bref ça m'inquiète quand même ^^

    J'aurais donc aimé savoir si vous pensez que cela peut endommager le bon fonctionnement de mon programme et si je devrais penser à une solution alternative où je n'aurais plus à utiliser cette méthode.

    Je remercie d'avance ceux qui m'auront lu en espérant qu'ils pourront m'aider dans ce problème.

    Sur ce, mes salutations =)

  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 Fullmetal82 Voir le message
    J'ai été amené à coder tel qu'une fonction d'affichage, déclarée dans le thread principal, est appelé dans le thread de réception.
    dangereux çà. Tu utilise un mutex ou autre pour protéger les données? tu utilise des pointeurs?

    Et, dans cette fonction, à chaque appel d'une variable également déclarée dans le thread principale, Qt me sort un message dans la console, le voici :
    "QCoreApplication::sendPostedEvents: Cannot send posted events for object in another thread".

    En apparence cela n'a aucune répercutions sur mon programme, malgré qu'il est planté tout à l'heure d'une cause inconnue mais après quelques répétitions ça n'avait pas l'air de réitérer. .
    Bref ça m'inquiète quand même ^^
    difficile de dire si le plantage viens de cette partie de code, mais ce n'est pas à exclure.

    si je devrais penser à une solution alternative où je n'aurais plus à utiliser cette méthode.
    pourquoi ne pas avoir utilisé les signal/slot?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    hum j'avais utilisé des mutex sur mon serveur mais les plantages aléatoires n'ont toujours pas disparu alors je n'ai pas appliqué sur mon client
    Quoi que si en y repensant, il y a longtemps il me semble que j'avais essayé, mais j'avais dû mal les utiliser parce que ça m'avait bloqué mon application -.-
    Bref. .
    J'utilise des pointeurs oui sinon.

    Par contre je te remercie fortement, j'avais complétement oublié les signaux personnalisés. . Ce qui m'évitera le QTimer qui teste périodiquement la valeur. . xD

    Excusez-moi si c'est un peu HS du sujet mais j'aimerais que l'on me confirme mon utilisation des mutex si quelqu'un le peut. J'utilise la SFML pour le réseau, et en l'occurrence j'utilise les fonctions mutex.Lock() et mutex.Unlock() autours des variables qui sont partagées par les deux threads, et ce sur chaque thread. .
    Est-ce suffisant ?

    Merci d'avance.

  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 Fullmetal82 Voir le message
    J'utilise des pointeurs oui sinon.
    faut bien faire attention que ce qui est pointé n'est pas détruit par un des thread pendant que l'autre l'utilise.
    Sur de petit objet, ton appli peut tomber en marche et planter de temps en temps sans que tu comprenne pourquoi. ou alors planté aprés l'ajout d'une ligne de code

    Par contre je te remercie fortement, j'avais complétement oublié les signaux personnalisés. . Ce qui m'évitera le QTimer qui teste périodiquement la valeur. . xD

    Citation Envoyé par Fullmetal82 Voir le message
    Excusez-moi si c'est un peu HS du sujet mais j'aimerais que l'on me confirme mon utilisation des mutex si quelqu'un le peut. J'utilise la SFML pour le réseau, et en l'occurrence j'utilise les fonctions mutex.Lock() et mutex.Unlock() autours des variables qui sont partagées par les deux threads, et ce sur chaque thread. .
    Est-ce suffisant ?
    si tu est sur de la durée de vie de ces variable, oui.
    Au lieu de pointeur, tu devrais utiliser des pointeurs intelligents. Qt en fournie quelques un.
    Pour les mutex je te conseil de regarder
    http://qt.developpez.com/faq/?page=T...pulation-mutex

Discussions similaires

  1. Message d'erreur console OEM
    Par r83 dans le forum Entreprise Manager
    Réponses: 0
    Dernier message: 30/10/2008, 18h11
  2. Erreur console lancement application
    Par Nicoclem dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 21/05/2008, 16h49
  3. Récuperer les messages d'erreurs console
    Par A.SISSA dans le forum Delphi
    Réponses: 9
    Dernier message: 15/06/2007, 11h09
  4. Classe : Service-> erreur Console-> Ok
    Par imnotgood dans le forum C#
    Réponses: 1
    Dernier message: 08/04/2007, 19h38
  5. message d'erreur console javascript: cur_combobox has no proprieties
    Par eclipse012 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 14h59

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