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

C++ Discussion :

Callbacks et Multithreading


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    36
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par d�faut Callbacks et Multithreading
    Bonjour � tous,

    Voil� mon probl�me : j'ai deux threads, une pour la gestion d'une interface graphique, et l'autre qui est sens�e faire tout un tas de calculs. Quand je clique sur un bouton, je voudrais d�clencher l'appel � une fonction g�r�e dans l'AUTRE thread... l�, je suis perdu, comment faire ???

    Merci

    PS : j'utilise les threads windows avec pour les cr�er :
    DWORD WINAPI ThreadPrincipale(LPVOID ThreadPrincipaleID)

  2. #2
    Expert confirm�

    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    F�vrier 2007
    Messages
    4 253
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par d�faut
    Il n'y a pas de notion de "fonction g�r�e dans un autre thread". Il y a des fonctions, des donn�es, et des threads (en temps normal 1 seul).

    Un thread peut �tre symbolis� par un �tat d'�xecution (l'instruction en cours) et une pile d'appels de fonctions, c'est tout. Il n'y a pas de duplication de donn�e ou de code.

    Par exemple (protection multi-thread�e en moins):

    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
    21
    22
    23
    24
    25
     
    class MonProgramme;
    class MonThreadUI : public Thread
    {
         MonProgramme& m_prog;
    public:
         MonThreadUI(MonProgramme& prog) : m_prog(prog) {}
     
         // called by UI in UI thread
         public void buttonClicked()
         {
               m_prog.addClick();
         }
    };
     
     
    class MonProgramme
    {
    public:
     
          void addClick()
          {
                ... Le code executé ici sera toujours dans le thread UI !!! ...
          }
    };

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Si tu donnes une boucle de messages � chaqun de tes deux threads, tu peux communiquer avec quelques PostMessage() (ou m�me SendMessage() pour certaines op�rations si tu as besoin de synchronisation)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [WinAPI C++] MultiThreading?
    Par Gruik dans le forum Windows
    R�ponses: 2
    Dernier message: 25/03/2004, 00h08
  2. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    R�ponses: 8
    Dernier message: 02/03/2004, 11h42
  3. [MFC] Un callback dans des MFC ...
    Par elsargento dans le forum MFC
    R�ponses: 3
    Dernier message: 18/02/2004, 16h04
  4. [Win32]App multithread
    Par billyboy dans le forum Windows
    R�ponses: 5
    Dernier message: 25/09/2003, 09h57
  5. Multithreading sous HP Ux 11
    Par pykoon dans le forum Autres �diteurs
    R�ponses: 1
    Dernier message: 18/10/2002, 23h36

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