<?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[Problem beim Maximieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen Task die über die Serielle Schnittstelle Daten empfängt und einen der Daten sendet (115200 KBit/s).<br />
Der Task der Daten empfängt benutzt Readfile im OVERLAPPED Modus und wartet danach mit WaitForSingleObject auf das empfangsevent</p>
<p>In dem Moment wo ich mein Fenster Maximiere dauert es 500 ms bis mein Empfankstask wieder drankommt und somit mein Kommunikationstimeout zuschlägt, da ich maximal 500 ms auf eine Antwort warte. Die Daten werden aber von der Seriellen Schnittstelle empfangen, ich habe mich mit einem weiteren ComPort mit auf die serielle Schnittstelle zum &quot;schnüffeln&quot; mit angehängt.</p>
<p>Warum dauert das zeichnen des Forms so lange?<br />
Und wie kann ich es anstellen das der Task zwischendrin mal seine Daten verarbeiten kann (die Thread Priority auf THREAD_PRIORITY_TIME_CRITICAL setzen ändert nichts, da es ja um die Abarbeitung des Empfangseventes geht)?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193672/problem-beim-maximieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 03:52:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193672.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Sep 2007 14:00:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem beim Maximieren on Mon, 01 Oct 2007 06:14:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen Task die über die Serielle Schnittstelle Daten empfängt und einen der Daten sendet (115200 KBit/s).<br />
Der Task der Daten empfängt benutzt Readfile im OVERLAPPED Modus und wartet danach mit WaitForSingleObject auf das empfangsevent</p>
<p>In dem Moment wo ich mein Fenster Maximiere dauert es 500 ms bis mein Empfankstask wieder drankommt und somit mein Kommunikationstimeout zuschlägt, da ich maximal 500 ms auf eine Antwort warte. Die Daten werden aber von der Seriellen Schnittstelle empfangen, ich habe mich mit einem weiteren ComPort mit auf die serielle Schnittstelle zum &quot;schnüffeln&quot; mit angehängt.</p>
<p>Warum dauert das zeichnen des Forms so lange?<br />
Und wie kann ich es anstellen das der Task zwischendrin mal seine Daten verarbeiten kann (die Thread Priority auf THREAD_PRIORITY_TIME_CRITICAL setzen ändert nichts, da es ja um die Abarbeitung des Empfangseventes geht)?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1374419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1374419</guid><dc:creator><![CDATA[Destiniy]]></dc:creator><pubDate>Mon, 01 Oct 2007 06:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Maximieren on Mon, 01 Oct 2007 06:12:54 GMT]]></title><description><![CDATA[<p>Hat keiner eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375662</guid><dc:creator><![CDATA[Destiniy]]></dc:creator><pubDate>Mon, 01 Oct 2007 06:12:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Maximieren on Mon, 01 Oct 2007 07:35:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Lagere doch den Empfangstask in einen Thread aus, dann wird nichts blockiert (siehe BCB-Hilfe zu TThread oder <a href="http://bcb-tutorial.c-plusplus.net/Thread/index.html" rel="nofollow">Builder Tutorial</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375704</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 01 Oct 2007 07:35:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Maximieren on Mon, 01 Oct 2007 15:17:12 GMT]]></title><description><![CDATA[<p>Ich hatte mich oben verschrieben ich meinte das Empfangen ist ein eigener Thread nur leider kommt der nicht dran so lange maximiert wird.</p>
<p>Woran könnte das liegen?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376072</guid><dc:creator><![CDATA[Destiniy]]></dc:creator><pubDate>Mon, 01 Oct 2007 15:17:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Maximieren on Mon, 01 Oct 2007 15:32:33 GMT]]></title><description><![CDATA[<p>Wenn der Empfangstask in einem eigenen Thread liegt kann das maximieren der Form da eigentlich nichts blockieren, es sei denn du hälst deinen Thread selber vorher an. Wie rufst du deinen Thread denn auf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376076</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 01 Oct 2007 15:32:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Maximieren on Tue, 02 Oct 2007 08:04:35 GMT]]></title><description><![CDATA[<p>das habe ich ja auch gedacht das da nichts blockieren kann ist ja auch nur so lange wie maximiert wird weshalb auch immer das so lange dauert.</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>ich denke das solange das programm maximiert wird das event nicht gesetzt wird und dadurch der thread nichts macht weiß aber nicht wie ich das ändern kann.</p>
<p>den thread rufe ich mit der WinApi Funktion CreateThread.</p>
<p>Wieso sollte der Aufruf einen Fehler verursachen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376323</guid><dc:creator><![CDATA[Destiniy]]></dc:creator><pubDate>Tue, 02 Oct 2007 08:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Maximieren on Tue, 02 Oct 2007 08:26:23 GMT]]></title><description><![CDATA[<p>Mit WinAPI-Threads kenne ich mich nicht aus. Evtl. fragst du mal im dortigen Forum nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376348</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 02 Oct 2007 08:26:23 GMT</pubDate></item></channel></rss>