Bonjour à tous,
J'essaye de faire ma com rs232 dans un thread, mais le problème c'est que une fois que mon thread est lancé, mon appli est figé mais pas mon PC.
j'ai mis la priorité du thread au minimum mais ça ne change rien.

voici mon code dans le thread
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
//Ouverture du port com
   DCB dcb;
   HANDLE hCom;
   DWORD dwError;
   BOOL fSuccess;
   BOOL bResult;
   DWORD dwEvtMask;
   COMMTIMEOUTS tTimeout;
   unsigned long nBytesRead;
   char *inBuffer;
   int TimeoutRead;
   int i;
   int NbOctet;
   char c;
   hCom = CreateFile(AnsiString("COM1").c_str(),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
   /*----------------------------------*/
   /*    Définition des timeouts       */
   /*----------------------------------*/
   TimeoutRead = 500; // timeout de 500ms
   tTimeout.ReadIntervalTimeout = MAXWORD;
   tTimeout.ReadTotalTimeoutMultiplier = 0;
   tTimeout.ReadTotalTimeoutConstant = TimeoutRead; // pas de time out = 0
   tTimeout.WriteTotalTimeoutMultiplier = 0;
   tTimeout.WriteTotalTimeoutConstant = 0;
   SetCommTimeouts(hCom,&tTimeout);
   AnsiString code="";
   nBytesRead=0;
 
   //Lecture des données
   while(!Terminated)
   {
      bResult = ReadFile(hCom,code.c_str(),25,&nBytesRead,NULL);
      if (nBytesRead!=0) // Il existe des octets lus
      {
         MessageDlg(code.c_str(), mtWarning, TMsgDlgButtons() << mbOK, 0);
      }
   }
   //Fermeture du port com
    CloseHandle(hCom);
Quelqu'un aurai-il une idée sur ce que je pourrai améliorer