<?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[PostQuitMessage - Verschiedene Threads]]></title><description><![CDATA[<p>Mein Hauptprogramm, welches die Eingaben annimmt, startet einen Thread mit einer eigenen Nachrichtenschleife.</p>
<pre><code class="language-cpp">class Work
{
    void Run(void);
    void Stop(void);
}
</code></pre>
<p>Die Run-Methode wird in einem Thread gestartet und sollte mit der Stop-Methode abgebrochen werden können. Dazu wird dort PostQuitMessage() aufgerufen.<br />
Stop wird jetzt ausserhalb des Threads aufgerufen. Dadurch kann PostQuitMessage die Nachrichtenschleife aber nicht mehr beenden, da sie in einem anderen Thread liegt.</p>
<p>Gibt es eine schöne Möglichkeit das Problem zu lösen?<br />
PostThreadMessage(ThreadId, WM_QUIT) soll man laut <a href="http://blogs.msdn.com/oldnewthing/archive/2005/11/04/489028.aspx" rel="nofollow">http://blogs.msdn.com/oldnewthing/archive/2005/11/04/489028.aspx</a> nicht verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235473/postquitmessage-verschiedene-threads</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 02:40:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235473.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Mar 2009 18:38:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Mon, 02 Mar 2009 18:38:00 GMT]]></title><description><![CDATA[<p>Mein Hauptprogramm, welches die Eingaben annimmt, startet einen Thread mit einer eigenen Nachrichtenschleife.</p>
<pre><code class="language-cpp">class Work
{
    void Run(void);
    void Stop(void);
}
</code></pre>
<p>Die Run-Methode wird in einem Thread gestartet und sollte mit der Stop-Methode abgebrochen werden können. Dazu wird dort PostQuitMessage() aufgerufen.<br />
Stop wird jetzt ausserhalb des Threads aufgerufen. Dadurch kann PostQuitMessage die Nachrichtenschleife aber nicht mehr beenden, da sie in einem anderen Thread liegt.</p>
<p>Gibt es eine schöne Möglichkeit das Problem zu lösen?<br />
PostThreadMessage(ThreadId, WM_QUIT) soll man laut <a href="http://blogs.msdn.com/oldnewthing/archive/2005/11/04/489028.aspx" rel="nofollow">http://blogs.msdn.com/oldnewthing/archive/2005/11/04/489028.aspx</a> nicht verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673035</guid><dc:creator><![CDATA[Caster]]></dc:creator><pubDate>Mon, 02 Mar 2009 18:38:00 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Mon, 02 Mar 2009 19:00:28 GMT]]></title><description><![CDATA[<p>du kannst eine andere abbruchbedingung einbauen. z.b. thread läuft:</p>
<pre><code class="language-cpp">while(run)
...
</code></pre>
<p>bis</p>
<pre><code class="language-cpp">Stop()
{
run=false
</code></pre>
<p>;<br />
...<br />
gedingst wird.<br />
grüssli.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673058</guid><dc:creator><![CDATA[Bruderherz]]></dc:creator><pubDate>Mon, 02 Mar 2009 19:00:28 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Mon, 02 Mar 2009 19:27:33 GMT]]></title><description><![CDATA[<p>Darauf dass ich in der Schleife neben dem GetMessage noch auf eine weitere Variable prüfen kann wäre ich nie gekommen. Die Lösung ist so einfach, das ist ja schon fast peinlich <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/1673080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673080</guid><dc:creator><![CDATA[Caster]]></dc:creator><pubDate>Mon, 02 Mar 2009 19:27:33 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Mon, 02 Mar 2009 20:54:14 GMT]]></title><description><![CDATA[<p>Main:<br />
::PostThreadMessage(...)</p>
<p>Thread reagiert auf die msg mit:<br />
::PostQuitMessage(0);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673130</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Mon, 02 Mar 2009 20:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Mon, 02 Mar 2009 20:57:24 GMT]]></title><description><![CDATA[<p>Das ist auch gut. So könnte ich das Polling durch PeekMessage verhindern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673133</guid><dc:creator><![CDATA[Caster]]></dc:creator><pubDate>Mon, 02 Mar 2009 20:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Tue, 03 Mar 2009 16:07:11 GMT]]></title><description><![CDATA[<p>So nun hab ich bemerkt, das alles doch nicht so einfach ist. Es geht im Prinzip darum Hotkeys zu registrieren, deren Nachrichten dann in dem Messageloop empfangen werden. Doch leider werden dann die Hotkeys welche ich im Hauptthread durch Benutzereingaben registriere natürlich auch nicht an den 2. Thread mit dem Loop geschickt.</p>
<p>Jetzt hab ich mir überlegt das ich das doch wieder mit PeekMessage mache und prüfe ob eine Windowsnachricht vorliegt oder eine Nachricht aus einer art prozessinternen meesagequeue mit der ich nachrichten von dem 1. an den 2. thread schicke.</p>
<p>Gibt es vielleicht noch eine andere Möglichkeit mit der ich das Polling vermeiden kann?<br />
Oder kennt jemand eine gute Seite/ein Tutorial in dem sollte Thread-Kommunikationsmethoden für Windows beschrieben werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673565</guid><dc:creator><![CDATA[Caster]]></dc:creator><pubDate>Tue, 03 Mar 2009 16:07:11 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Tue, 03 Mar 2009 16:49:46 GMT]]></title><description><![CDATA[<p>Vielleicht würde es reichen wenn du dem 2. Thread ein Fenster spendierst?<br />
Ist nicht unüblich versteckte (=unsichtbare) Message-Windows anzulegen, zu dem Zweck eben Nachrichten zu empfangen die nur an Fenster geschickt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673581</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 03 Mar 2009 16:49:46 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Tue, 03 Mar 2009 19:50:48 GMT]]></title><description><![CDATA[<p>Das ganze ist eigentlich ein Konsolenprogramm und das sollte es wenn möglich auch bleiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673670</guid><dc:creator><![CDATA[Caster]]></dc:creator><pubDate>Tue, 03 Mar 2009 19:50:48 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Tue, 03 Mar 2009 21:41:32 GMT]]></title><description><![CDATA[<p>Was meinst du dann mit Hotkeys?<br />
*grübel*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673743</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 03 Mar 2009 21:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to PostQuitMessage - Verschiedene Threads on Mon, 09 Mar 2009 22:12:37 GMT]]></title><description><![CDATA[<p>Ich empfange in der Konsole mit GetMessage() die WM_HOTKEY Nachrichten die ich mit RegisterHotKey() anlege.</p>
<p>EDIT - Für alle die es interessiert:</p>
<p>Ich habe jetzt die tolle Funktion MsgWaitForMultipleObjects gefunden. Mit der erreiche ich genau was ich wollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673755</guid><dc:creator><![CDATA[Caster]]></dc:creator><pubDate>Mon, 09 Mar 2009 22:12:37 GMT</pubDate></item></channel></rss>