<?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[Berechnung wenn nötig abbrechen]]></title><description><![CDATA[<p>Ich habe ein Programm das einige Berechnungen ausführt. Diese Berechnungen können unter Umstanden etwas länger dauern.</p>
<p>Ich habe nicht so die Erfahrung jetzt ein zweiten Thread zu programmieren. Ausserdem muss der Anwender auf die berechneten Daten warten, kann also während der Bearbeitung nichts mit dem Programm anfangen. Trotzdem muss ich ihm die Möglichkeit geben die Berechnung abzubrechen.</p>
<p>Wo kann ich die Berechnung plazieren damit die Nachrichteschleife nicht hängenbleibt. Oder muss ich es doch über einen Thread realisieren (was ich ja nicht will).</p>
<p>danke cu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/94566/berechnung-wenn-nötig-abbrechen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 05:18:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/94566.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Dec 2004 11:02:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Fri, 10 Dec 2004 11:02:13 GMT]]></title><description><![CDATA[<p>Ich habe ein Programm das einige Berechnungen ausführt. Diese Berechnungen können unter Umstanden etwas länger dauern.</p>
<p>Ich habe nicht so die Erfahrung jetzt ein zweiten Thread zu programmieren. Ausserdem muss der Anwender auf die berechneten Daten warten, kann also während der Bearbeitung nichts mit dem Programm anfangen. Trotzdem muss ich ihm die Möglichkeit geben die Berechnung abzubrechen.</p>
<p>Wo kann ich die Berechnung plazieren damit die Nachrichteschleife nicht hängenbleibt. Oder muss ich es doch über einen Thread realisieren (was ich ja nicht will).</p>
<p>danke cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/670210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/670210</guid><dc:creator><![CDATA[hass]]></dc:creator><pubDate>Fri, 10 Dec 2004 11:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Fri, 10 Dec 2004 17:03:19 GMT]]></title><description><![CDATA[<p>hass schrieb:</p>
<blockquote>
<p>Oder muss ich es doch über einen Thread realisieren (was ich ja nicht will).</p>
</blockquote>
<p>dieses wäre aber IMHO das sinnvollste</p>
]]></description><link>https://www.c-plusplus.net/forum/post/670485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/670485</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Fri, 10 Dec 2004 17:03:19 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Fri, 10 Dec 2004 23:29:38 GMT]]></title><description><![CDATA[<p>Du könntest aber auch innerhalb der Berechnung eine Abbruchbedingung einbauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/670657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/670657</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 10 Dec 2004 23:29:38 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Fri, 10 Dec 2004 23:54:06 GMT]]></title><description><![CDATA[<p>Du könntest alle paar Berechnungsschritte mal die Nachrichtenschlange abbauen. (Mit PeekMessage usw.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/670663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/670663</guid><dc:creator><![CDATA[SeriousSam]]></dc:creator><pubDate>Fri, 10 Dec 2004 23:54:06 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Sat, 11 Dec 2004 13:05:19 GMT]]></title><description><![CDATA[<p>So schwierig sollte das aber mit Threads auch nicht sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/670860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/670860</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 11 Dec 2004 13:05:19 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Sat, 11 Dec 2004 14:48:27 GMT]]></title><description><![CDATA[<p>Sicherlich, das Problem ist nur, dass du dann in die Thread Schleife auch etwas einbauen musst, was auf einen Abbruch reagiert. Man kann natürlich auch mit TerminateThread hart killen, aber das sollte man möglichst vermeiden, da es unerwünschte Nebeneffekte geben kann.<br />
Einen extra Thread zu machen ergibt nur Sinn, wenn es eine Hintergrundberechnung ist und der User weiterhin mit der Oberfläche arbeiten kann. Da dies bei hass aber nicht der Fall ist, reicht der Hauptthread vollkommen aus. Man muss nur, wie SeriousSam schon sagte, von Zeit zu Zeit die Message Queue abarbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/670937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/670937</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 11 Dec 2004 14:48:27 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Sat, 11 Dec 2004 17:43:57 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>[...] von Zeit zu Zeit die Message Queue abarbeiten.</p>
</blockquote>
<p>Wodurch der User wieder mit der Oberfläche arbeiten kann. Ich würde auch einen Thread verwenden (es sei denn das System soll nicht belastet werden), denn dafür sind sie da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/671048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/671048</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Sat, 11 Dec 2004 17:43:57 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Sat, 11 Dec 2004 19:28:03 GMT]]></title><description><![CDATA[<p>Und wie bau ich das in die Funktion ein?</p>
<pre><code class="language-cpp">void BerechneWas()
{
    while(So_Lanage_Berechnung_Läuft)
    {
       // WAS SOLL JETZT HIERT REIN
    ....
    }
}
</code></pre>
<p>Ich habe versucht GetMessage() und co. da reinzubauen. Aber das Programm wird sofort beendet, das heisst man sieht das Fenster nicht mehr, aber es läuft noch im TaskManager.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/671159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/671159</guid><dc:creator><![CDATA[hass]]></dc:creator><pubDate>Sat, 11 Dec 2004 19:28:03 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Sun, 12 Dec 2004 02:09:06 GMT]]></title><description><![CDATA[<p>D@niel $chumann schrieb:</p>
<blockquote>
<p>groovemaster schrieb:</p>
<blockquote>
<p>[...] von Zeit zu Zeit die Message Queue abarbeiten.</p>
</blockquote>
<p>Wodurch der User wieder mit der Oberfläche arbeiten kann.</p>
</blockquote>
<p>Und? Siehst du darin ein Problem?<br />
Ein modales Statusfenster mit Abbruch-Button, und du hast alles was du brauchst.</p>
<p>@hass<br />
Du hast letztendlich 2 Möglichkeiten<br />
1.<br />
Du baust GetMessage/TranslateMessage in die Berechnungsfunktion ein und sorgst dafür, dass GetMessage/TranslateMessage zyklisch aufgerufen werden.<br />
2.<br />
Du baust die Berechnungsfunktion in den Message Loop ein und arbeitest dann mit PeekMessage. Praktisch ähnlich wie man es normalerweise bei Spielen macht. In diesem Fall wird die Berechnungsfunktion zyklisch aufgerufen und du musst die interne Verwaltung entsprechend darauf abstimmen. Sofern keine Berechnung und keine Nachrichten anstehen übergibst du dann die Kontrolle dem System <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> WaitMessage.<br />
Ich persönlich würde Variante 2 vorziehen, da du damit systemunabhängig bist und sowas dann leicht auf andere Systeme portiert werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/671373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/671373</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 12 Dec 2004 02:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Sun, 12 Dec 2004 02:16:30 GMT]]></title><description><![CDATA[<blockquote>
<ol>
<li></li>
</ol>
<p>Du baust GetMessage/TranslateMessage in die Berechnungsfunktion ein und sorgst dafür, dass GetMessage/TranslateMessage zyklisch aufgerufen werden.</p>
</blockquote>
<p>Nein, PeekMessage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/671374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/671374</guid><dc:creator><![CDATA[asdfasdf]]></dc:creator><pubDate>Sun, 12 Dec 2004 02:16:30 GMT</pubDate></item><item><title><![CDATA[Reply to Berechnung wenn nötig abbrechen on Sun, 12 Dec 2004 03:31:46 GMT]]></title><description><![CDATA[<p>&quot;GetMessage/TranslateMessage&quot; diente ja mehr oder weniger auch nur als Platzhalter. Da die Verarbeitung non-blocking sein soll, schliesst das die Verwendung von GetMessage richtigerweise aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/671388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/671388</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 12 Dec 2004 03:31:46 GMT</pubDate></item></channel></rss>