<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Probleme beim maximieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen Thread, der über die Serielle Schnittstelle Daten empfängt und einen der Daten sendet (115200 KBit/s).<br />
Der Thread der Daten empfängt benutzt Readfile im OVERLAPPED Modus und wartet danach mit WaitForSingleObject auf das Empfangsevent.</p>
<pre><code class="language-cpp">{ 
// Event anlegen 
memset(&amp;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,&amp;ov,&amp;br,false)) 
   { 
    for (i = 0;i &lt; br;i++) ReceiveEvent(Buffer[i]); 
   } 
   // Daten lesen 
   ReadFile(hComPort,Buffer,sizeof(Buffer),&amp;br,&amp;ov); 
  } 
 } 
 else 
 { 
  // Event setzen 
  SetEvent(ov.hEvent); 
  // warten 
  Sleep(100); 
 } 
} 

// Event löschen 
CloseHandle(ov.hEvent); 

// Flag löschen 
ThreadRunning = false; 
}
</code></pre>
<p>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.</p>
<p>Die Applikation ist mit Borland 6 geschrieben aber im dortigen Forum konnte mir keiner weiterhelfen vielleicht hat ja hier jemand eine Idee.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193948/probleme-beim-maximieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 05:49:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193948.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Oct 2007 08:39:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim maximieren on Tue, 02 Oct 2007 08:39:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen Thread, der über die Serielle Schnittstelle Daten empfängt und einen der Daten sendet (115200 KBit/s).<br />
Der Thread der Daten empfängt benutzt Readfile im OVERLAPPED Modus und wartet danach mit WaitForSingleObject auf das Empfangsevent.</p>
<pre><code class="language-cpp">{ 
// Event anlegen 
memset(&amp;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,&amp;ov,&amp;br,false)) 
   { 
    for (i = 0;i &lt; br;i++) ReceiveEvent(Buffer[i]); 
   } 
   // Daten lesen 
   ReadFile(hComPort,Buffer,sizeof(Buffer),&amp;br,&amp;ov); 
  } 
 } 
 else 
 { 
  // Event setzen 
  SetEvent(ov.hEvent); 
  // warten 
  Sleep(100); 
 } 
} 

// Event löschen 
CloseHandle(ov.hEvent); 

// Flag löschen 
ThreadRunning = false; 
}
</code></pre>
<p>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.</p>
<p>Die Applikation ist mit Borland 6 geschrieben aber im dortigen Forum konnte mir keiner weiterhelfen vielleicht hat ja hier jemand eine Idee.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376357</guid><dc:creator><![CDATA[Destiniy]]></dc:creator><pubDate>Tue, 02 Oct 2007 08:39:36 GMT</pubDate></item></channel></rss>