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

Visual C++ Discussion :

tuer un thread en attente (socket)


Sujet :

Visual C++

  1. #1
    Membre éclairé Avatar de LesLemmings
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 302
    Par défaut tuer un thread en attente (socket)
    bonjour,
    voila j'ai un programme ou j'utilise le multi-thread
    donc je crée un thread

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	m_TraitementX = (CTraitement*) AfxBeginThread(RUNTIME_CLASS(CTraitement),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
    	ASSERT_VALID(m_TraitementX);
    	m_TraitementX->ResumeThread();
    ...
    mon thread est créé et lancer
    il passe dans le constructeur puis lance la fonction Run.

    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
    CTraitement::CTraitement()
    {
             ...
    }
     
    int CTraitement::Run(void)
    {
    	do
    	{
    		i = 0 ;
    		recvfrom(RecvSocket, RecvBuf, BufLen, 0, (SOCKADDR*)&SenderAddr, &SenderAddrSize);
                          ...
    	}
    	while(!flag);
    }
    pour le tuer j'utilise
    dans le run
    mais voila j'ai une boucle do while pour que mon thread pour l'arreter quant je veux(je passe flag a true.
    mon programme est bloqué au niveau de la reception du socket (il attandun message).
    alors quand je passe mon flag a true (a patire d'un autre classe) mon thread sera tué apres la reception du socket.

    peut-on tuer un thread alors qu'il est en attende du socket
    AfxEndThread peut-il etre utiliser autre par quen dans la classe Run

    merci

  2. #2
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par LesLemmings
    peut-on tuer un thread alors qu'il est en attende du socket
    Oui on peut toujours utiliser TerminateThread mais ce n'est pas du tout recommandé (très bourrin) et à faire en tout état de cause.

    Par contre, je me dis que tu peux forcer recvfrom() à s'arreter, ainsi ton thread se terminera normalement.
    Tu devrais surement jeter un coup d'oeil sur les fonctions shutdown() et closesocket().

    Nicolas

Discussions similaires

  1. [C#.NET 2] Thread "en attente"
    Par Ticoche dans le forum Windows Forms
    Réponses: 16
    Dernier message: 25/02/2008, 14h00
  2. Probléme pour tuer un Thread
    Par peyo_le_fou dans le forum POSIX
    Réponses: 5
    Dernier message: 04/11/2006, 14h10
  3. [D6] Comment tuer un Thread ?
    Par Lung dans le forum Langage
    Réponses: 6
    Dernier message: 28/04/2006, 11h42
  4. Les threads et les sockets
    Par pier* dans le forum Développement
    Réponses: 4
    Dernier message: 09/01/2006, 11h44
  5. [Debutant] Faut-il tuer les Threads Static?
    Par sniperseb dans le forum MFC
    Réponses: 5
    Dernier message: 05/12/2005, 14h43

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