SerialPort.Close() ==> freeze [Résolu]

Signaler
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008
-
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008
-
J'ai un problème avec l'utilisation de la classe serialPort.
J'ai crée des fonctions utilsant le port série. Elles ouvrent le port, exécutent les commandes adéquates puis ferment le port.
Ces fonctions sont appelées en boucle toutes les msec.

Après un petit temps l'application se bloque.
Lorsque je fais un debug/break all, je constate que l'applic est bloquée à l'instruction serialport.close() (pointée par une petite flèche verte). Si je fais F11, aucune fleche jaune n'apparait comme en mode debug et l'applic reste bloquée. Ca se passe toujours à cet instruction.

Il y aurait-il un bug dans la classe et surtout une solution ?

Merci pour votre aide !!

@"#+++

1 réponse

Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008

Pour ceux que ca intéresse la solution est la suivante :

Comme indiqué dans la doc MSDN,SerialPort.Close()

 il est à éviter d'ouvrir un port directement après sa fermeture car l'opération prend un certain temps.

J'ai donc changé mon code. Les ports restent ouverts depuis la connexion par l'utilisateur jusqu'à la fermeture de l'application, sauf si changement de port.

Cette approche et plus logique, plus rapide et fonctionne bien mieux que l'autre....

@"#+++