<?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[Thread abbrechen]]></title><description><![CDATA[<p>Hallihallo!</p>
<p>Ich habe in meinem Programm einen Dialog, mit dem eine einzelne Berechnung in einem eigenen Thread gestartet wird. Dazu gibt es zwei Schaltflächen im Dialog: eine, um die Iteration zu starten und eine, um sie zu stoppen. Wird die Schaltfläche &quot;Starten&quot; betätigt, ruft das Programm die entsprechende Methode auf, in der dann mit ResumeThread(myThread) der schon vorher erstellte Thread gestartet wird. Wie kann ich jetzt beim Drücken von &quot;Stop&quot; die Iteration wieder stoppen, falls dem Benutzer die Berechnung zu lange dauert? Gibt es dafür auch eine Methode? Hab irgendwie noch nichts brauchbares gefunden, was funktioniert...<br />
Danke schonmal! <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>
<p>Meike</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136108/thread-abbrechen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 07:14:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136108.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Feb 2006 12:55:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread abbrechen on Tue, 07 Feb 2006 12:55:36 GMT]]></title><description><![CDATA[<p>Hallihallo!</p>
<p>Ich habe in meinem Programm einen Dialog, mit dem eine einzelne Berechnung in einem eigenen Thread gestartet wird. Dazu gibt es zwei Schaltflächen im Dialog: eine, um die Iteration zu starten und eine, um sie zu stoppen. Wird die Schaltfläche &quot;Starten&quot; betätigt, ruft das Programm die entsprechende Methode auf, in der dann mit ResumeThread(myThread) der schon vorher erstellte Thread gestartet wird. Wie kann ich jetzt beim Drücken von &quot;Stop&quot; die Iteration wieder stoppen, falls dem Benutzer die Berechnung zu lange dauert? Gibt es dafür auch eine Methode? Hab irgendwie noch nichts brauchbares gefunden, was funktioniert...<br />
Danke schonmal! <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>
<p>Meike</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988452</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 07 Feb 2006 12:55:36 GMT</pubDate></item><item><title><![CDATA[Reply to Thread abbrechen on Tue, 07 Feb 2006 13:04:44 GMT]]></title><description><![CDATA[<p>Du könntest den Thread mit SuspendThread() auf Eis legen (dann kann er beim nächsten &quot;Start&quot;-Befehl an der selben Stelle fortsetzen).<br />
Komplett beenden sollte der Thread sich lieber selber - indem du eine bool-Variable im Hauptprogramm setzt und regelmäßig im Thread überprüfst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988462</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:04:44 GMT</pubDate></item><item><title><![CDATA[Reply to Thread abbrechen on Tue, 07 Feb 2006 13:13:28 GMT]]></title><description><![CDATA[<p>Prinzipiell ist das zwar eine gute Idee, aber wenn der Benutzer zum Beispiel den Startwert für die Iteration ändert und neu berechnen möchte, dann möchte ich den Thread ja nicht wieder dort aufnehmen, wo er stehen geblieben ist, sondern die Berechnung neu anfangen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988471</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:13:28 GMT</pubDate></item><item><title><![CDATA[Reply to Thread abbrechen on Tue, 07 Feb 2006 13:18:37 GMT]]></title><description><![CDATA[<p>In dem Fall benötist du die Variante mit der bool-Variable:</p>
<pre><code class="language-cpp">void thrdFunc()
{
  while(cont)
  {
    //rechnen
  }
};

OnChange()//User ändert Startwerte
{
  cont=false;
  ResumeThread(thr);//der Thread beendet sich bei nächstbester Gelegenheit
}

OnStart()
{
  if(!cont)
  {
    //Thread (neu) initialisieren
    cont=true;
  }
  ResumeThread(thr);
}

OnStop()
{
  SuspendThread(thr);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/988476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988476</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to Thread abbrechen on Tue, 07 Feb 2006 13:21:59 GMT]]></title><description><![CDATA[<p>Das hört sich gut an, so werd ich das mal probieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988481</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to Thread abbrechen on Tue, 07 Feb 2006 13:53:36 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Habs jetzt noch ein klein bisschen anders gelöst:</p>
<pre><code>OnStart() 
{
	cont = false;
	ResumeThread(myThread);
}

OnStop() 
{
	SuspendThread(myThread);
	cont = true;
	ResumeThread(myThread);
}

void thrdFunc()
{
    while(!cont)
      // rechne
}
</code></pre>
<p>Das tuts <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/988520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988520</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 07 Feb 2006 13:53:36 GMT</pubDate></item></channel></rss>