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 :

[THREAD MFC] tester lexistence


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 21
    Par défaut [THREAD MFC] tester lexistence
    Bonjour,
    voila mon souci jaimerai tester de la presence du thread que jai executé.
    jai ainsi fait ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CWinThread* mythread;
     
    mythread = (MyThreadClass*)AfxBeginThread(RUNTIME_CLASS(MyThreadClass), THREAD_PRIORITY_LOWEST, 0,0);
    GetExitCodeProcess(mythread->m_hThread, &dwExitCode);
    if(dwExitCode == STILL_ACTIVE) //process toujours présent ?
    {
     AfxMessageBox("Thread");
    }
    le probleme c est que le process est censé etre tjrs actif juste apres son lancement or la c est comme s il en l'était pas... et ca rentre pas ds mon if.
    d ou peut venir le probleme ? est ce que GetExitCodeProcess marche avec les thread MFC ?
    merci

  2. #2
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    GetExitCodeProcess agit sur les process, pas les thread. Tu peux utiliser WaitForSingleObject pour détecter la fin de ton thread.
    J'ai l'impression que tu mélanges process/thread.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 21
    Par défaut
    c est bien possible...
    en l occurence la c est evident jai fait une boulette
    je dois bien travailler avec des thread... par contre simplement comment je peux savoir si mon thread a fini son travail ?
    pr etre plus précis jvais raconter ce que j ai fait vite fait.
    jai une appli mfc dialog je souhaite executer une recherche de fichier. jai donc mis un thread pr la recherche de fichier (je l ai mis ds OnInitDialog()) pr eviter que ca bloque ma fenetre. sauf que j'aurai besoin de savoir qd il a fini le boulot de recherche...
    (jai créé une classe thread : MyThreadClass.. qui est une classe dérive de CWinThread)

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Par défaut
    Et pourquoi ne pas poser le probleme a l"envers, je m'explique :

    Pourquoi ta Thread n'enverrai pas un message a ton appli pour dire qu'elle a fini la recherche ? : : :

  5. #5
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Tout à fait, c'est plus simple. Sinon je ne connais pas de moyen direct pour savoir si un thread est vivant. On peut y arriver en posant un timeout sur WaitForSingleObject.

  6. #6
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Et GetExitCodeThread ?
    Je ne l'ai jamais utilisé mais ça semble fait pour ça.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Par défaut
    Ouais mais il faudrait tester tout le temps ou alors c bloquant ?

  8. #8
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    D'après MSDN, tester tous le temps.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Par défaut
    Il faudra alors un autre thread qui teste si le premier a bien fini.... mais .... mais .... mais alors il faudra un autre qui teste si celui qui teste si le premier a fini..... ..... et la c mort LOL !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 21
    Par défaut
    hihi donc en gros jsuis ds le caca
    pour la gestion des message je n'ai pas tout compris qq un aurait un bel
    exemple a me proposer ?
    sinon merci enormement pour votre aide.

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Par défaut
    PostMessage()

    Cf MSDN !

  12. #12
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055

  13. #13
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par abelman
    Et GetExitCodeThread ?
    Je ne l'ai jamais utilisé mais ça semble fait pour ça.
    Comme pour GetExitCodeProcess, il faut l'appeler une fois qu'on est sûr que le process/thread est terminé.
    Exemple simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ExitThread( STILL_ACTIVE );
    Bon y'a peu de risques je te l'accorde, mais la loi de murphy est là et...

Discussions similaires

  1. [XML] Tester l’existence d'un attribut
    Par koyot3 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/09/2011, 10h05
  2. Tester l’existence d’une application
    Par louay02 dans le forum Débuter
    Réponses: 3
    Dernier message: 31/05/2011, 15h41
  3. Synchro multi-thread : comment tester ?
    Par buzzkaido dans le forum C++
    Réponses: 5
    Dernier message: 17/10/2007, 20h51
  4. [thread MFC] multiplicité
    Par ZaaN dans le forum MFC
    Réponses: 3
    Dernier message: 30/11/2006, 11h01
  5. [MFC] Tester l'initialisation d'un ActiveX
    Par poseidon2 dans le forum MFC
    Réponses: 28
    Dernier message: 22/03/2005, 13h56

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