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

Python Discussion :

Thread et fonctions bloquantes


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Par défaut Thread et fonctions bloquantes
    Bonjour à tous,
    J’ai besoin de vos conseils pour arrêter un thread qui a des fonctions bloquantes. Voici le partie principale du thread :
    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
     
    while var.stop != True :            
                # on lit 1 octet que l'on passe en decimal
                r = ord(ser.read())
                if r == 0xFF: # si c'est le debut de trame
                    print "Debut Trame"
                    octet1 = ord(ser.read())
                    print octet1
     
                    octet2 = ord(ser.read())
                    print octet2
     
                    octet3 = ord(ser.read())
                    print octet3
     
     
                    octet4 = ord(ser.read())
                    print octet4
     
                    octet5 = ord(ser.read())
                    print octet5
     
                    octet6 = ord(ser.read())
                    print octet6
     
                    octet7 = ord(ser.read())
                    print octet7
     
                 #traitement des octets
    Comment puis-je arrêter ce thread quand l’utilisateur active un bouton stop sachant que la fonction read() est bloquante et que je ne sais pas quand je reçois les données?
    P.S. : j’utilise le module pyserial

    Je vous remercie d’avance
    Cordialement
    Sebome

  2. #2
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Par défaut
    j'ai trouvé une solution certe pas très propre mais elle marche
    MonThread._Thread__stop()
    et apres je ferme mon port serie

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 27
    Par défaut
    quand tu configures ton port serie tu peux utiliser une option pur qu'il y ai un timeout et que ton read ne soit pas bloquant mais retourne tune chaine vide ou bout d'un certain temps...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Associer un thread à une fonction
    Par cris73 dans le forum Prolog
    Réponses: 1
    Dernier message: 10/03/2007, 10h17
  2. Problème thread et fonction récursive
    Par cryptorchild dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2006, 12h19
  3. Réponses: 3
    Dernier message: 10/01/2006, 14h01
  4. Réponses: 5
    Dernier message: 16/12/2005, 17h41
  5. [Threads] Sortir d'une fonction bloquante
    Par guejo dans le forum MFC
    Réponses: 19
    Dernier message: 17/08/2004, 14h12

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