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

Messages postés
44
Date d'inscription
mardi 13 juin 2006
Dernière intervention
31 mars 2008
- - Dernière réponse : brixi69
Messages postés
44
Date d'inscription
mardi 13 juin 2006
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 !!

@"#+++
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Dernière intervention
31 mars 2008
3
Merci
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....

@"#+++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 114 internautes nous ont dit merci ce mois-ci

Commenter la réponse de brixi69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.