<?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[Mehrere Threads in einer Klasse]]></title><description><![CDATA[<p>Hey!</p>
<p>Ist es eigentlich erlaubt, zB. sowas zu machen:</p>
<pre><code class="language-cpp">static unsigned long __stdcall threadDummy(void* instance)
	{
		static_cast&lt;SlowBob*&gt;(instance)-&gt;Tick();
		return 0;
	}

	static unsigned long __stdcall threadDummy2(void* instance)
	{
		static_cast&lt;SlowBob*&gt;(instance)-&gt;Tick2();
		return 0;
	}

	void Tick();
	void Tick2();
</code></pre>
<p>Und das innerhalb einer Klasse. Rennen auch gleichzeitig.</p>
<p>Denn irgendwie hab ich Probleme. Thread 1 ruft jede Sekunde eine Funktion auf, welche beim ersten Durchgang eine MessageBox zeigt und ein flag setzt, damit die MessageBox nicht mehr angezeigt wird.<br />
Aber wenn ich den Thread starte, wird die MessageBox zwei mal angezeigt!</p>
<p>Also sozusagen:</p>
<p>if(flag)<br />
{<br />
MessageBox(0, 0, 0, 0);<br />
flag = false;<br />
}</p>
<p>Das verstehe ich nicht... Die MessageBox dürfte doch nur einmal erscheinen, das ist doch sichergestellt?!<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191501/mehrere-threads-in-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 08:19:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191501.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Sep 2007 17:55:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrere Threads in einer Klasse on Mon, 03 Sep 2007 17:55:37 GMT]]></title><description><![CDATA[<p>Hey!</p>
<p>Ist es eigentlich erlaubt, zB. sowas zu machen:</p>
<pre><code class="language-cpp">static unsigned long __stdcall threadDummy(void* instance)
	{
		static_cast&lt;SlowBob*&gt;(instance)-&gt;Tick();
		return 0;
	}

	static unsigned long __stdcall threadDummy2(void* instance)
	{
		static_cast&lt;SlowBob*&gt;(instance)-&gt;Tick2();
		return 0;
	}

	void Tick();
	void Tick2();
</code></pre>
<p>Und das innerhalb einer Klasse. Rennen auch gleichzeitig.</p>
<p>Denn irgendwie hab ich Probleme. Thread 1 ruft jede Sekunde eine Funktion auf, welche beim ersten Durchgang eine MessageBox zeigt und ein flag setzt, damit die MessageBox nicht mehr angezeigt wird.<br />
Aber wenn ich den Thread starte, wird die MessageBox zwei mal angezeigt!</p>
<p>Also sozusagen:</p>
<p>if(flag)<br />
{<br />
MessageBox(0, 0, 0, 0);<br />
flag = false;<br />
}</p>
<p>Das verstehe ich nicht... Die MessageBox dürfte doch nur einmal erscheinen, das ist doch sichergestellt?!<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358188</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Mon, 03 Sep 2007 17:55:37 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Threads in einer Klasse on Mon, 03 Sep 2007 18:08:25 GMT]]></title><description><![CDATA[<p>Ach ich Trottel hab CreateThread zweimal aufgerufen, voll übersehen.</p>
<p>Naja, trotzdem stimmt irgendwas mit dem Verhalten nicht. Also darf man mehrere Threads in eine Klasse packen?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358196</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Mon, 03 Sep 2007 18:08:25 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Threads in einer Klasse on Mon, 03 Sep 2007 18:10:15 GMT]]></title><description><![CDATA[<p>natürlich, das eine hat nichts mit dem anderen zu tun. du musst nur aufpassen daß deine threads sich ned gegenseitig in die quere kommen und gleichzeitig auf irgendwelche variablen zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358197</guid><dc:creator><![CDATA[teppichmensch]]></dc:creator><pubDate>Mon, 03 Sep 2007 18:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Threads in einer Klasse on Mon, 03 Sep 2007 18:53:29 GMT]]></title><description><![CDATA[<p>Jo, das ist mir klar. Ok, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358251</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Mon, 03 Sep 2007 18:53:29 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Threads in einer Klasse on Mon, 03 Sep 2007 20:40:03 GMT]]></title><description><![CDATA[<p>Threads und Klassen sind komplett unverwandte Prinzipien. Anders gesagt: das eine hat mit dem anderen nix zu tun.</p>
<p>Der Grund warum dein Code nicht so funktioniert wie du das erwartet hast ist einfach dass du den falschen Code geschrieben hast.<br />
Du musst &quot;flag&quot; schon bevor MessageBox zurückkehrt auf false setzen wenn du willst dass ein 2. Thread nicht noch eine MessageBox anzeigt während die erste noch sichtbar ist.</p>
<p>Davon abgesehen musst du Zugriffe auf Variablen synchronisieren wenn die aus mehreren Threads Zugriffe machst. Was in deinem Code auch nicht vorkommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358336</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 03 Sep 2007 20:40:03 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Threads in einer Klasse on Mon, 03 Sep 2007 21:03:26 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Du musst &quot;flag&quot; schon bevor MessageBox zurückkehrt auf false setzen wenn du willst dass ein 2. Thread nicht noch eine MessageBox anzeigt während die erste noch sichtbar ist.</p>
<p>Davon abgesehen musst du Zugriffe auf Variablen synchronisieren wenn die aus mehreren Threads Zugriffe machst. Was in deinem Code auch nicht vorkommt.</p>
</blockquote>
<p>Danke, aber das ist mir klar. Es ging ja bei meinem Problem nur indirekt um zwei Threads. Jedenfalls funktioniert jetzt alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358348</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Mon, 03 Sep 2007 21:03:26 GMT</pubDate></item></channel></rss>