<?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[&amp;quot;keine Reaktion&amp;quot; während Berechnung]]></title><description><![CDATA[<p>Ich weiß nicht wie ich dieses Problem für gogle in 3 Wörter packen sollte, und die FAQ habe ich schon durchforstet. Trotzdem müsste es eigentlich ein Problem sein, dass sehr häufig auftritt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wenn ich mithilfe eines Buttons eine Berechnung starte, die mehrere Minuten dauert, so reagiert das Programm während dieser Zeit auf keine andere Eingabe, erst nach Abschluss der Berechnung werden diese dann ausgeführt. Auf simple Eingaben, wie z.B. &quot;Abbruch&quot; oder das Ändern der Position oder Größe des Fensters sollte es aber schon reagieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Kann mir jemand weiterhelfen? Links reichen völlig aus...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145004/quot-keine-reaktion-quot-während-berechnung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 21:17:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145004.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Apr 2006 07:07:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Mon, 24 Apr 2006 07:07:05 GMT]]></title><description><![CDATA[<p>Ich weiß nicht wie ich dieses Problem für gogle in 3 Wörter packen sollte, und die FAQ habe ich schon durchforstet. Trotzdem müsste es eigentlich ein Problem sein, dass sehr häufig auftritt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wenn ich mithilfe eines Buttons eine Berechnung starte, die mehrere Minuten dauert, so reagiert das Programm während dieser Zeit auf keine andere Eingabe, erst nach Abschluss der Berechnung werden diese dann ausgeführt. Auf simple Eingaben, wie z.B. &quot;Abbruch&quot; oder das Ändern der Position oder Größe des Fensters sollte es aber schon reagieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Kann mir jemand weiterhelfen? Links reichen völlig aus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043742</guid><dc:creator><![CDATA[BeNNeR]]></dc:creator><pubDate>Mon, 24 Apr 2006 07:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Mon, 24 Apr 2006 07:13:04 GMT]]></title><description><![CDATA[<p>Ich würde die Berechnung in einen Thread auslagern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043744</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Mon, 24 Apr 2006 07:13:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Mon, 24 Apr 2006 07:14:58 GMT]]></title><description><![CDATA[<p>Stichwort Message-Queue: Jede Eingabe wird von Windows in eine Nachricht an dein Programm umgewandelt (z.B. WM_KEYDOWN (Tastendruck), WM_LBUTTONDOWN (Maustaste) oder WM_PAINT (neuzeichnen nötig)), die dann von deinem Programm verarbeitet und an die Subfunktionen weitergegeben wird. Während du mit deiner Berechnung beschäftigt bist, liegt diese Warteschlange brach - das Programm reagiert nicht mehr.</p>
<p>Als Lösung kannst du entweder in regelmäßigen Abständen unterbrechen und die anliegenden Nachrichten abarbeiten - oder du startest einen eigenen Thread, der sich nur um die Berechnung kümmert und dem Hauptprogramm mitteilt, wenn er fertig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043745</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 24 Apr 2006 07:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Mon, 24 Apr 2006 12:12:37 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Als Lösung kannst du entweder in regelmäßigen Abständen unterbrechen und die anliegenden Nachrichten abarbeiten - oder du startest einen eigenen Thread, der sich nur um die Berechnung kümmert und dem Hauptprogramm mitteilt, wenn er fertig ist.</p>
</blockquote>
<p>Welche Lösung ist denn emfehlenswerter? Die Nachrichtenschleife zu unterbrechen klingt einfacher, der Thread &quot;eleganter&quot;...oder ist es egal? Kennt jemand ein gutes Tutorial dazu? Hab nur <a href="http://www.codeworx.org/cpp_tuts_1_5.php" rel="nofollow">http://www.codeworx.org/cpp_tuts_1_5.php</a> gefunden aber irgendwie klappt das noch nicht. Der Aufruf</p>
<pre><code class="language-cpp">hThread = _beginthread(	start(hChild),
											0,
											NULL);
</code></pre>
<p>erzeugt den Fehler:</p>
<pre><code>d:\Visual Studio Projekte\silikonoel\GUI_II\GUI_II.cpp(281): error C2664: '_beginthread': Konvertierung des Parameters 1 von 'void' in 'void (__cdecl *)(void *)' nicht möglich
        Ausdruck vom Typ void kann nicht in andere Typen konvertiert werden
</code></pre>
<p>Die Deklaration der Funktion start sieht so aus:</p>
<pre><code class="language-cpp">void start(HWND hChild);
</code></pre>
<p>Die Funktion an sich funktionierte tadellos, bis ich den Thread einzuführen versucht habe. Ich verstehe die Fehlermeldung so, dass der Compiler mit dem Return-Wert &quot;void&quot; nicht sehr glücklich ist. Das Seltsame ist nur, dass es im oben genannten Tutorial ja genauso gemacht wird oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wär echt toll wenn mir jemand weiterhelfen könnte...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043765</guid><dc:creator><![CDATA[BeNNeR]]></dc:creator><pubDate>Mon, 24 Apr 2006 12:12:37 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Tue, 25 Apr 2006 07:52:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">_beginthread(start,0,hChild);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1044607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044607</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 25 Apr 2006 07:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Tue, 25 Apr 2006 08:47:54 GMT]]></title><description><![CDATA[<p>Funktioniert so. Hat eine Weile gedauert, bis ich dahinterkam, dass hier Funktionsaufruf und Übergabe der Argumente getrennt werden müssen, warum auch immer...dann braucht man nur noch eine Konvertierung für hChild</p>
<pre><code class="language-cpp">(HWND)hChild
</code></pre>
<p>und dann funktioniert das alles.Aber warum wurde dieser Aufruf so konzipiert, dass man Argumente getrennt von der Funktion übergeben muss, und dass nur als *void machen kann? Wäre es zu logisch gewesen in der Art wie ich es vorher versucht habe? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Aber egal, jetzt weiß ich wie es geht, wieder was gelernt. Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044645</guid><dc:creator><![CDATA[BeNNeR]]></dc:creator><pubDate>Tue, 25 Apr 2006 08:47:54 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Tue, 25 Apr 2006 08:58:20 GMT]]></title><description><![CDATA[<p>Das liegt daran, wie in C Funktionsaufrufe aufgelöst werden:</p>
<pre><code class="language-cpp">beginthread(tfunc(x));
</code></pre>
<p>würde erst &quot;tfunc(x)&quot; ausrechnen und dann dessen Rückgabewert an beginthread() übergeben</p>
<pre><code class="language-cpp">beginnthread(tfunc,x);
</code></pre>
<p>übergibt beginthread() einen Pointer auf die Threadfunktion und einen Parameter - die Methode kann jetzt alle nötigen Datenstrukturen zur Threadverwaltung anlegen und danach (quasi in kontollierter Umgebung) &quot;tfunc(x)&quot; aufrufen.</p>
<p>(und void* wurde deshalb verwendet, weil die Funktion noch aus C-Zeiten stammen dürfte und deshalb keine Überladungen oder Templates möglich sind - schließlich kann ein void-Zeiger auf alles zeigen, was du an Daten benötigen könntest)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044650</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Apr 2006 08:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;keine Reaktion&amp;quot; während Berechnung on Tue, 25 Apr 2006 10:24:40 GMT]]></title><description><![CDATA[<p>OK, deine Argumente sind schlagend, danke für die Aufklärung.<br />
Ich hab nichts gesagt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044716</guid><dc:creator><![CDATA[BeNNeR]]></dc:creator><pubDate>Tue, 25 Apr 2006 10:24:40 GMT</pubDate></item></channel></rss>