jujunio
Messages postés37Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention22 septembre 2010
-
26 juin 2003 à 09:22
jujunio
Messages postés37Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention22 septembre 2010
-
26 juin 2003 à 14:00
Bonjour à tous !
J'tilise la fonction ReadFile pour lire sur le port COm du PC.
La lecture fonctionne correctement sans les Threads.
J'ai décidé de mettre en place les Threads et là ça ne veut plus marcher.
Pas d'erreur à la compil mais qd j'exécute, ça fonctionne jusqu'au ReadFile !!!!!
// Lecture reponse
res = ReadFile(
hCOM, // Handle du port
donnees, // Adresse buffer
noctets, // Nb octets à lire
&nbOctets, // Nb octets lus
NULL); // Lecture synchrone
vidarusny
Messages postés31Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 3 décembre 2009 26 juin 2003 à 09:55
Quand tu utilise les threads sur une seule ressource tu dois synchroniser tes threads. Pour ca en MFC tu as les CSemaphore.Ce qui te permet d'attendre que t'as ressource soit libre, et qui peut eviter le plantagede ta fonction ReadFile.
Pour l'utiliser tu la déclare dans "Blick" (CSemaphore block) et tu l'utilise comme suit :
block.Lock();
com1->lire(trame,total,&nbre); // dans un tableau
block.Unlock();
vidarusny
Messages postés31Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 3 décembre 2009 26 juin 2003 à 09:56
Quand tu utilise les threads sur une seule ressource tu dois synchroniser tes threads. Pour ca en MFC tu as les CSemaphore.Ce qui te permet d'attendre que t'as ressource soit libre, et qui peut eviter le plantagede ta fonction ReadFile.
Pour l'utiliser tu la déclare dans "Blick" (CSemaphore block) et tu l'utilise comme suit :
block.Lock();
com1->lire(trame,total,&nbre); // dans un tableau
block.Unlock();
jujunio
Messages postés37Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention22 septembre 2010 26 juin 2003 à 14:00
Merci de ton aide VIDARUSNY mais qd je compile, connait pas CSemaphore, ni block, lock et unlock. Je crois qu'il manque une Classe...
peux-tu me détailler comment faire ???