Fermer un port COM

el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 - 18 août 2005 à 10:03
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 - 22 août 2005 à 16:49
Bonjour,



voilà je souhiaterais pouvoir forcer la fermeture d'un port COM, dont
je connais le _handle, mais qui est en train d'être accédé par une
boucle de lecture.



Voilà le style de la boucle de lecture :

while (true)

{

ReadFile(_portHandle, buffer, 1, ref nb_bytes_read, IntPtr.Zero);

}



Certains vont peut être me dire que le problème vient du while(true),
et bien je ne pense pas. Car lorsque le programme arrive à
l'instruction ReadFile, il y reste tant qu'il n'a pas quelque chose à
lire.



Et donc, cela m'empêche de fermer le port, et aussi mon programme entre parenthèses.
A voir également:

2 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
18 août 2005 à 16:41
ReadFile est complexe, y'a plusieurs cas de figures qui sont détaillés dans la MSDN, ca donne quoi ca:

while ( ReadFile( ... ) ) { ... }
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
22 août 2005 à 16:49
Bah ca ne correspond pas à ce que je veux ta méthode. Je voudrais faire
de la lecture en boucle sur le port, ce que je fais grâce à



while(true)

{

readfile(...



Si je fais while(readfile(...)>0) cela va lire le port tant que je
recois qqch, si je fais while(readfile(...)==1) ca va arréter dès que
je ne recevrais plus rien.



Mais cela me donne une idée. Il n'y aurait pas une exception qui est
levée lorsque l'on recoit un caractère sur le port série ? Cela
m'arrangerait bien. Dans ce cas, je ferais ta méthode. Si je recoit un
caractère, c'est qu'un message arrive, donc tant que tu recois, fais
ReadFile, puis apèrs vu qu'on quitte le readfile, je peux fermer le
port qui n'est plus accéder par ReadFile.
0
Rejoignez-nous