<?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 lässt sich nicht beenden!]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe gerade mein erstes Progrämmchen geschrieben, dass Threads verwendet. Der Thread den Ich geschrieben habe durchläuft eine Endlosschleife und führt WaitCommEvent aus, wartet also auf ein ankommendes Zeichen, wenn eins ankommt teilt er das dem Hauptthread mit und fängt wieder von vorne an.<br />
Nun habe ich festgestellt, dass nach dem Schließen des Fensters, die *.exe Datei weiterhin in der Liste der Prozesse aufscheint, somit mein Programm weiterläuft. Muss man Threads eigens wieder beenden?Wie? Im Petzold steht nichts davon, nur CreateThread schein auf, aber nichts zum Beenden.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171419/thread-lässt-sich-nicht-beenden</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 07:26:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171419.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Jan 2007 10:14:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 10:14:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe gerade mein erstes Progrämmchen geschrieben, dass Threads verwendet. Der Thread den Ich geschrieben habe durchläuft eine Endlosschleife und führt WaitCommEvent aus, wartet also auf ein ankommendes Zeichen, wenn eins ankommt teilt er das dem Hauptthread mit und fängt wieder von vorne an.<br />
Nun habe ich festgestellt, dass nach dem Schließen des Fensters, die *.exe Datei weiterhin in der Liste der Prozesse aufscheint, somit mein Programm weiterläuft. Muss man Threads eigens wieder beenden?Wie? Im Petzold steht nichts davon, nur CreateThread schein auf, aber nichts zum Beenden.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216718</guid><dc:creator><![CDATA[frederik_duese]]></dc:creator><pubDate>Thu, 25 Jan 2007 10:14:39 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 10:33:02 GMT]]></title><description><![CDATA[<p>Die beste Lösung ist es, den Thread sauber auslaufen zu lassen. Dazu kannst du aus der Endlosschleife eine &quot;normale&quot; Schleife machen, deren Abbruchbedingung vom Hauptprogramm gesetzt werden kann:</p>
<pre><code class="language-cpp">bool ende=false

//Thread:
while(!ende)
{
  if(daten_vorhanden()
    verarbeite_daten();
}

//Hauptprogramm:
...
ende=true;
//eventuell mit WaitForSingleObject o.ä. darauf warten, daß der Thread wirklich fertig ist
exit();
</code></pre>
<p>(PS: Natürlich solltest du die Zugriffe auf die gemeinsame Variable synchronisieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216732</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Jan 2007 10:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 10:56:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>:<br />
Ich weiß, dass es auch ohne geht, aber sollte die Variable <em>ende</em> nicht in diesem Fall volatile deklariert werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216749</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 25 Jan 2007 10:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 10:59:54 GMT]]></title><description><![CDATA[<p>Ja, durchaus möglich - aber das war sowieso nur eine Verdeutlichung des Löungsprinzips.</p>
<p>(und ich würde vermutlich einen Event verwenden für die Benachrichtigung)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216753</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Jan 2007 10:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 11:24:58 GMT]]></title><description><![CDATA[<p>Danke Erstmal, das wär sicher eine elegante Lösung. Das Problem ist nur, dass der Thread so lange bei WaitCommEvent hängen bleibt, bis etwas ankommt und erst dann mit der Endllosschleife fortfährt. Und das kann laaange dauern. Also wird der Thread wohl oder übel unsanft beendet werden müssen, oder was meint ihr dazu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216769</guid><dc:creator><![CDATA[frederik_duese]]></dc:creator><pubDate>Thu, 25 Jan 2007 11:24:58 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 11:35:24 GMT]]></title><description><![CDATA[<p>Da solltest du am besten mal deine Datenverarbeitung umstellen.</p>
<p>*grübelt* Zum Beispiel könntest du WaitCommEvent() im Overlapped-Modus verwenden - da hast du die Möglichkeit, zwischendurch eigene Arbeiten zu erledigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216777</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Jan 2007 11:35:24 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 11:49:52 GMT]]></title><description><![CDATA[<p>Was bedeutet overlapped?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216785</guid><dc:creator><![CDATA[frederik_duese]]></dc:creator><pubDate>Thu, 25 Jan 2007 11:49:52 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 12:24:12 GMT]]></title><description><![CDATA[<p>Schau dir doch mal den MSDN-Beitrag zu WaitCommEvent() an, da findest du eine genauere Erklärung.</p>
<p>In Kurzfassung: Die Funktion kehrt sofort zum Aufrufer zurück und wartet im Hintergrund auf ein Ergebnis. Wenn sie fertig ist, wird ein Event gesetzt, den du abfragen kannst, um die Eingaben entgegenzunehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216805</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Jan 2007 12:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Thread lässt sich nicht beenden! on Thu, 25 Jan 2007 14:41:34 GMT]]></title><description><![CDATA[<p>Siehe auch:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-169285-and-highlight-is-%2Athread%2A.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-169285-and-highlight-is-*thread*.html</a><br />
und:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-169778-and-highlight-is-%2Athread%2A.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-169778-and-highlight-is-*thread*.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1216928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216928</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 25 Jan 2007 14:41:34 GMT</pubDate></item></channel></rss>