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

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

brixi69 44 Messages postés mardi 13 juin 2006Date d'inscription 31 mars 2008 Dernière intervention - 22 juin 2006 à 09:51
+3
Utile
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....

@"#+++
Cette réponse vous a-t-elle aidé ?  
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.