Probleme beim maximieren
-
Hallo,
ich habe einen Thread, der über die Serielle Schnittstelle Daten empfängt und einen der Daten sendet (115200 KBit/s).
Der Thread der Daten empfängt benutzt Readfile im OVERLAPPED Modus und wartet danach mit WaitForSingleObject auf das Empfangsevent.{ // Event anlegen memset(&ov,0,sizeof(ov)); ov.hEvent = CreateEvent(NULL,false,true,NULL); // Thread while (!ThreadExit) { Port offen? if (INVALID_HANDLE_VALUE != hComPort) { // Empfangsevent? if (WAIT_OBJECT_0 == WaitForSingleObject(ov.hEvent,500)) { if (GetOverlappedResult(hComPort,&ov,&br,false)) { for (i = 0;i < br;i++) ReceiveEvent(Buffer[i]); } // Daten lesen ReadFile(hComPort,Buffer,sizeof(Buffer),&br,&ov); } } else { // Event setzen SetEvent(ov.hEvent); // warten Sleep(100); } } // Event löschen CloseHandle(ov.hEvent); // Flag löschen ThreadRunning = false; }Wenn ich jetzt mein MainForm maximiere dauert es länger als 500 ms bis mein Thread wieder drankommt. Ich vermute das das event erst nach dem neu Zeichnen gesetzt wird. die Daten kommen aber schon zeitiger an wenn man auf der seriellen Schnittstelle kuckt. Es gehen auch keine Daten verloren die sind dann alle noch da nur zu spät.
Die Applikation ist mit Borland 6 geschrieben aber im dortigen Forum konnte mir keiner weiterhelfen vielleicht hat ja hier jemand eine Idee.
MfG