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
Rejoignez-nous