Hello,
Merci de la réponse
Alors j'utilise Borland Developpeur Studio 2006
Je fais une DLL de type VCL.
J'utilise la library CPort.hpp pour communiquer avec le port com et j'ai une boucle du style
while('Rien reçu sur le port com' && i<15)
{
j=0;
i++;
Application->ProcessMessages();
while(!CheckSynchronize(10) && j<5)
{
j++;
}
Sleep(100);
}
Si j'appel une fonction contenant cette boucle depuis le programme principal j'ai pas de problème.
Si maintenant je fais un
T1 = CreateThread(NULL,32,threadfunc,NULL,1,NULL);
ResumeThread(T1);
et que dans la fonction threadfunc j'appel la fonction comprenant la boucle précédente, j'ai une erreur indiquant que la fonction CheckSynchronize et appelée depuis un autre Thread que le Thread principal.
Si j'enlève le CheckSynchronize je ne reçois plus l'événement ComPortRxChar et par conséquent je ne peux plus faire une lecture AsynChrone, je suis obligé d'attendre une certain temps et d'aller voir si des caractères sont reçus.
J'ai essayer d'autre méthode pour la déclaration du Thread et en fait j'aimerais savoir si on peut déclarer un Thread qui peut appeler la méthode CheckSynchronize.
Voila j'espère que c'est plus clair.
Merci
Partager