<?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[Gui hängt wenn Thread läuft]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich Programmiere gerade eine Anwendung welche eine Thread startet, dieser Verbindet sich dann zu einem Server und übergibt etwas, das passiert in einem Thread, der aktuelle Status wird in der Gui dargestellt (Object x von y) das Funktioniert auch ohne Probleme.</p>
<p>Das Größte Problem ist das z.B. der Button beenden in der gui nicht mehr Funktioniert, weil wie ich meine, der Prozess &quot;Gui&quot; keine Systemzeit mehr bekommt.</p>
<p>Mit folgendem Code erzeuge ich den Thread:</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; m_nAnzahl; i++)
        {
           h = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread_start, (LPVOID)NULL, 0, &amp;dwThreadID); 
           dw = WaitForSingleObject(h, 20);
           while (dw != NULL)
           {
               Sleep(50);
               dw = WaitForSingleObject(h, 50); //Warte ob Thread fertig ist
               if (dw == NULL)
               {
                    nCounter++;
                    RefreshStatus(nCounter); //Aktualisiere Statusbar
               }
           }

        }
</code></pre>
<p>Währe nett wenn mir jemand eine Idee hat, vielen Dank.</p>
<p>P.s. es ist das erstemal das ich etwas mit threads mache bitte über den Code nicht wundern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175318/gui-hängt-wenn-thread-läuft</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 21:02:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175318.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Mar 2007 08:07:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Gui hängt wenn Thread läuft on Fri, 09 Mar 2007 08:07:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich Programmiere gerade eine Anwendung welche eine Thread startet, dieser Verbindet sich dann zu einem Server und übergibt etwas, das passiert in einem Thread, der aktuelle Status wird in der Gui dargestellt (Object x von y) das Funktioniert auch ohne Probleme.</p>
<p>Das Größte Problem ist das z.B. der Button beenden in der gui nicht mehr Funktioniert, weil wie ich meine, der Prozess &quot;Gui&quot; keine Systemzeit mehr bekommt.</p>
<p>Mit folgendem Code erzeuge ich den Thread:</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; m_nAnzahl; i++)
        {
           h = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread_start, (LPVOID)NULL, 0, &amp;dwThreadID); 
           dw = WaitForSingleObject(h, 20);
           while (dw != NULL)
           {
               Sleep(50);
               dw = WaitForSingleObject(h, 50); //Warte ob Thread fertig ist
               if (dw == NULL)
               {
                    nCounter++;
                    RefreshStatus(nCounter); //Aktualisiere Statusbar
               }
           }

        }
</code></pre>
<p>Währe nett wenn mir jemand eine Idee hat, vielen Dank.</p>
<p>P.s. es ist das erstemal das ich etwas mit threads mache bitte über den Code nicht wundern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242096</guid><dc:creator><![CDATA[marks]]></dc:creator><pubDate>Fri, 09 Mar 2007 08:07:34 GMT</pubDate></item><item><title><![CDATA[Reply to Gui hängt wenn Thread läuft on Fri, 09 Mar 2007 08:21:59 GMT]]></title><description><![CDATA[<p>Die GUI kann erst dann auf weitere Eingaben reagieren, wenn ein Handler abgearbeitet ist - und dadurch, daß du auf den Thread wayrtest, blockierst du effektiv das gesamte Programm (eigentlich genau das Problem, das durch den Thread vermieden werden sollte).</p>
<p>Die Lösung: Diese Funktion sollte den Thread nur anstoßen und sich dann beenden. Das Warten auf das Thread-Ende solltest du woanders erledigen (z.B. in der OnIdle()-Methode - oder der Thread schickt eine Nachricht zurück, wenn er fertig ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242102</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 09 Mar 2007 08:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to Gui hängt wenn Thread läuft on Fri, 09 Mar 2007 08:38:46 GMT]]></title><description><![CDATA[<p>Vielen Dank für deine Antwort,</p>
<p>werde das dann dementsprechend anderst machen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242113</guid><dc:creator><![CDATA[marks]]></dc:creator><pubDate>Fri, 09 Mar 2007 08:38:46 GMT</pubDate></item></channel></rss>