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 :

terminer proprement un thread avec fonction bloquante


Sujet :

MFC

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 141
    Points : 95
    Points
    95
    Par défaut terminer proprement un thread avec fonction bloquante
    Bonjour
    la fac propose une technique pour terminer proprement les threads, mais pour cela, il faut que le thread passe par un if. Or dans mon cas, le thread est bloqué sur la fonction recv(), et ne passera donc pas par le if lors de la demande de fermeture. Y'a t-il une methode adaptée à mon cas? ou dois-je bricoler pour quitter le recv()??

    Merci
    Qui dit buzz??!!!!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    un select() avec un timeout ?
    Tu règles le timeout sur un temps raisonnable, et tu testes en boucle... (Genre: Timeout de 250ms pour select(), et tu regardes la variable entre chaque appel à select(), donc 4 fois par seconde...)
    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.

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 141
    Points : 95
    Points
    95
    Par défaut
    un select? ça me dit qq'chose, mais koi...
    pourrais tu me donner une piste que je me documente s'teuplai

    merci
    Qui dit buzz??!!!!

  4. #4
    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 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Je crois qu'il y a des astuces à base de signaux : ton thread fait un closesocket dans le traitement de son signal, ce qui fait échouer le recv, ou alors c'est le thread parent qui peut le faire si c'est lui qui a créé le socket. A vérifier / tester...

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 141
    Points : 95
    Points
    95
    Par défaut
    oué j'y avais pensé mais le probleme si je ferme le socket avant de tuer le thread, c'est qu'il y aura un msg d'erreur... et je serai obliger de "bricoler" pour pas qu'il soit pris en compte... mais je sens que je serai obliger de passer par là
    merci!
    Qui dit buzz??!!!!

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Euh...
    tu sais, en C et C++, le message d'erreur, il n'est affiché que si tu lui demandes toi-même de s'afficher, hein...
    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. Réponses: 7
    Dernier message: 12/06/2011, 07h14
  2. Arrêt de Thread avec appel bloquant..
    Par dIwAmIb dans le forum C#
    Réponses: 5
    Dernier message: 22/04/2009, 11h44
  3. Thread et fonctions bloquantes
    Par sebome dans le forum Général Python
    Réponses: 2
    Dernier message: 13/09/2007, 20h57
  4. Boost thread avec fonction membre non statique.
    Par Klaim dans le forum Boost
    Réponses: 2
    Dernier message: 11/08/2007, 02h58
  5. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15

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