SerialPort.Close() ==> freeze

Résolu
brixi69
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008
- 19 juin 2006 à 14:02
brixi69
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008
- 22 juin 2006 à 09:51
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

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

22 juin 2006 à 09:51
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....

@"#+++
3