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] les threads


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 40
    Points
    40
    Par défaut [MFC] les threads
    Bonjour,

    je vous explique une peu ce que je veux faire.
    J'ai une checkbox, si on la coche on doit lancer un thread, quand elle n'est plus lancée on doit terminer/killer le thread

    Pour lancer mon thread j'utilise AfxBeginThread

    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
    /*
     * Description: Fonction détectant un changement de status (chochée / non cochée) de la CheckBox
     *				Si la CheckBox est cochée on appelle la fonction RefreshList() actualisant les informations des serveurs de la CListCtrl
     * E:
     * S:
     * return: void
     */
    void Tab2::OnChkChange() 
    {
    	if(IsDlgButtonChecked(IDC_CHECKREFRESH)) 
    	{	
    		AfxBeginThread(ThreadRefreshList, this);
    	}
    	else
    	{
    		// On termine le thread
    		//AfxEndThread();
    	}
    }
     
    UINT Tab2::ThreadRefreshList(LPVOID pParam)
    {
    	Tab2 * self = (Tab2 *)pParam;
    	self->RefreshList();
        return 0;
    }
    Mon premier problème est que je n'arrive par a killer le thread malgré la FAQ ( http://cpp.developpez.com/faq/vc/?pa...opWorkerThread )
    Ensuite je m'intérroge sur les threads, ma fonction RefreshList() est récursive
    RefreshList()
    {
    //... du code
    RefreshList();
    }

    dois-je laisser ca comme ca ou lancer à intervalle régulier un thread ?


    Merci

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 389
    Points
    20 389
    Par défaut
    J'ai une checkbox, si on la coche on doit lancer un thread, quand elle n'est plus lancée on doit terminer/killer le thread
    Pour arrêter le thread il faut lui communiquer un message WM_USER de fin de traitement au thread .Le Thread peut le recevoir avec GetMessage.
    Sinon tu peux prendre une variable booléenne passée en paramêtre

    Sinon prendre au besoin un CEvent qui sera peut-être plus adapté voir dans le MSDN pour étudier les différentes possbilités

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/05/2005, 10h22
  2. [MFC] UpdateData() + thread
    Par MadChris dans le forum MFC
    Réponses: 6
    Dernier message: 03/06/2004, 20h55
  3. Gestion des message windows dans les threads
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 06/10/2003, 17h25
  4. Question simple sur les threads :)
    Par momox dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2003, 04h13
  5. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59

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