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

MFC Discussion :

[MFC] Comment savoir que mon Thread a fini sa tâche?


Sujet :

MFC

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2002
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 230
    Points : 148
    Points
    148
    Par défaut [MFC] Comment savoir que mon Thread a fini sa tâche?
    Bonjour,

    Voici la classe que j'utilise pour gérer mes threads :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    //------------------------------------------------------------------------------
    // Implement an MFC based thread
    //------------------------------------------------------------------------------
     
    #ifndef _THREAD_H_
    #define _THREAD_H_
     
     
    #include "Afxmt.h"                  // Windows MFC for CEvent
     
     
     
     
     
    class CThread
    {
     
    public:
     
        CThread(void);
        ~CThread(void);
     
        // Call this to change the priority of the thread
        BOOL SetPriority(int iNewPriority);
     
        // Call this to register a callback function
        void CallThis(void (*CallbackFunction)(void *pContext));
     
        // Call this to awake the thread and the callback function will be called
        BOOL AwakeThread(void *pTheContext);
     
    private:
     
        CWinThread  *m_pTheThread;          // MFC wrapped thread
        CEvent      *m_pEvtWakeUpThread;    // Event used to call the user's callback
        CEvent      *m_pEvtThreadActive;    // Event used to terminates the thread
     
        BOOL        m_bThreadBusy;          // Callback function has returned
     
        void (*m_pUserCallback)(void *pContext);    // Ptr 2 user function to call
        void *m_pUserContext;                       // Ptr 2 user context as the callback function parameter
     
        static UINT TheThreadFunc(LPVOID pThreadFuncParam);
     
    };
     
     
    #endif	// _THREAD_H_
    Pour lancer mon thread, j'utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Start the acquisition thread
     
        m_apAcqThread[0]->AwakeThread(&m_aAcqThreadParams[0]);
    avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CThread             *m_apAcqThread[MAX_NUMBER];
    Comment puis je savoir que le Thread a terminé sa tâche?

    Merci d'avance.
    L'union fait la force.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3
    Par défaut
    Si tu lances ton thread avec CreateThread, tu obtiens un handle qui bascule en état signalé une fois le thread terminé. Autrement dit, tu peux faire un WaitForSingleObject sur le handle reçu.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/07/2005, 15h06
  2. [XML]Comment tester que mon fichier XML est comme ceci?
    Par Devil666 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2005, 13h41
  3. Réponses: 19
    Dernier message: 26/01/2005, 10h41
  4. Comment savoir que le cable réseau a été débranché
    Par laurent82 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 12/07/2004, 20h37
  5. [Trigger] comment savoir que la bd a ete modifiee
    Par corwin_d_ambre dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/02/2004, 12h50

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