<?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[Threadklasse so korrekt?]]></title><description><![CDATA[<p>Hallo wollte mal Fragen ob meine Threadklasse so korrekt arbeitet und keine Speicherlöcher oder ähnliches verursacht.. Wär supernet wenn jemand mal die 30 Zeilen da anschauen könnt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">class Thread
{
public:
	// Handle of the thread
	HANDLE m_HandleThread;
	// ID of the thread
	DWORD  m_ThreadID;	

public:
	virtual void start () 
	{
		m_HandleThread = CreateThread(NULL,
				0,
				entry,
				(LPVOID)this,
				0,
				&amp;m_ThreadID);
	}

	static DWORD WINAPI entry (LPVOID data) 
	{
		Thread* pThread = (Thread*)data;
		pThread-&gt;run();
		return((DWORD)data);
	}

	virtual void run () = 0;

	virtual void stop ()
	{
		TerminateThread(m_HandleThread, 0);
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/159668/threadklasse-so-korrekt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 15:14:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159668.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Sep 2006 19:21:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:21:43 GMT]]></title><description><![CDATA[<p>Hallo wollte mal Fragen ob meine Threadklasse so korrekt arbeitet und keine Speicherlöcher oder ähnliches verursacht.. Wär supernet wenn jemand mal die 30 Zeilen da anschauen könnt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">class Thread
{
public:
	// Handle of the thread
	HANDLE m_HandleThread;
	// ID of the thread
	DWORD  m_ThreadID;	

public:
	virtual void start () 
	{
		m_HandleThread = CreateThread(NULL,
				0,
				entry,
				(LPVOID)this,
				0,
				&amp;m_ThreadID);
	}

	static DWORD WINAPI entry (LPVOID data) 
	{
		Thread* pThread = (Thread*)data;
		pThread-&gt;run();
		return((DWORD)data);
	}

	virtual void run () = 0;

	virtual void stop ()
	{
		TerminateThread(m_HandleThread, 0);
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1139198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139198</guid><dc:creator><![CDATA[Threadmacher]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:21:43 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:24:06 GMT]]></title><description><![CDATA[<p>solange du keine exceptions benutzt und keine destruktoren ist alles ok.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139199</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:24:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:25:35 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p><em>Stop()</em> könntet du im D'tor aufrufen und selbiger sollte virtuell sein.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139200</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:25:35 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:28:16 GMT]]></title><description><![CDATA[<p>Ah danke für den Hinweis mit Destruktoren.. Wüsste nicht wie ich das mit Destruktor hinbekommen sollte weil klar dass ich einen benutze.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139202</guid><dc:creator><![CDATA[Threadmacher]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:34:06 GMT]]></title><description><![CDATA[<p>Wäre es so korrekt?</p>
<pre><code class="language-cpp">class Thread
{
public:
	// Handle of the thread
	HANDLE m_HandleThread;
	// ID of the thread
	DWORD  m_ThreadID;	

public:
	virtual ~Thread () 
	{
		// Dummy
	}

	virtual void start () 
	{
		m_HandleThread = CreateThread(NULL,
				0,
				entry,
				(LPVOID)this,
				0,
				&amp;m_ThreadID);
	}

	static DWORD WINAPI entry (LPVOID data) 
	{
		Thread* pThread = (Thread*)data;
		pThread-&gt;run();
		delete pThread;
		return((DWORD)data);
	}

	virtual void run () = 0;

	virtual void stop ()
	{
		TerminateThread(m_HandleThread, 0);
		delete this;
	}
};
</code></pre>
<p>Habe ich damit alle Fehler beseitigt? .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139204</guid><dc:creator><![CDATA[Threadmacher]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:34:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:34:40 GMT]]></title><description><![CDATA[<p>Threadmacher schrieb:</p>
<blockquote>
<p>Ah danke für den Hinweis mit Destruktoren.. Wüsste nicht wie ich das mit Destruktor hinbekommen sollte weil klar dass ich einen benutze.</p>
</blockquote>
<p>du musst den thread vergiften. gib ihm ein attrubut bool poisoned; und im thread schau gelegentlich, ob er poisened==true. wenn ja, dann wirf ne exception.</p>
<p>außerdem fang vielleicht in der entry mit catch(...) alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139205</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:38:49 GMT]]></title><description><![CDATA[<p>Ok danke super tipp! sonst würds oben soweit passen außer halt die exception fangen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139207</guid><dc:creator><![CDATA[Threadmacher]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:38:49 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:46:30 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Das <em>delete this;</em> in <em>stop()</em> sollte dort nich sein. Aber <em>stop()</em> kannst du durchaus im Destruktor aufrufen.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139213</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:46:30 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:51:37 GMT]]></title><description><![CDATA[<p>TerminateThread aufzurufen ist extrem schlecht. Ersetz das durch etwas vernünftiges.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139217</guid><dc:creator><![CDATA[poison]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:52:08 GMT]]></title><description><![CDATA[<p>TerminateThread ist ein schlimmer Befehl. Lies mal im MSDN.<br />
Ein Thread sollte sich immer selbst beenden. Du solltest ihm<br />
in der stop()-Methode lediglich bescheid sagen, dass er<br />
nun zum Ende kommen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139218</guid><dc:creator><![CDATA[NickHappy]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:52:08 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:57:36 GMT]]></title><description><![CDATA[<p>NickHappy schrieb:</p>
<blockquote>
<p>TerminateThread ist ein schlimmer Befehl. Lies mal im MSDN.<br />
Ein Thread sollte sich immer selbst beenden. Du solltest ihm<br />
in der stop()-Methode lediglich bescheid sagen, dass er<br />
nun zum Ende kommen soll.</p>
</blockquote>
<p>jup. und im dtor nochmal zur sicherheit stop() schicken und warten, warten, warten, bis er selber aufgegeben hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139223</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:57:36 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 19:57:47 GMT]]></title><description><![CDATA[<p>Ok Danke für eure Hinweise! Dann lass ich es jetzt einfach so minimalistisch:</p>
<pre><code class="language-cpp">class Thread
{
public:
	// Handle of the thread
	HANDLE m_HandleThread;
	// ID of the thread
	DWORD  m_ThreadID;	

public:
	virtual ~Thread () {}

	virtual void start () 
	{
		m_HandleThread = CreateThread(NULL,
				0,
				entry,
				(LPVOID)this,
				0,
				&amp;m_ThreadID);
	}

	static DWORD WINAPI entry (LPVOID data) 
	{
		Thread* pThread = (Thread*)data;
		pThread-&gt;run();
		delete pThread;
		return((DWORD)data);
	}

	virtual void run () = 0;
};
</code></pre>
<p>Jetzt passts oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> (Exception handling brauch ich jetzt nicht)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139224</guid><dc:creator><![CDATA[Threadmacher]]></dc:creator><pubDate>Sun, 17 Sep 2006 19:57:47 GMT</pubDate></item><item><title><![CDATA[Reply to Threadklasse so korrekt? on Sun, 17 Sep 2006 20:01:22 GMT]]></title><description><![CDATA[<p>Die Stop Methode war schon richtig, nur sollte sie den Thread nicht stoppen, nur bescheid geben das er sich selbst stoppt.</p>
<p>Und:</p>
<pre><code class="language-cpp">virtual ~Thread () { stop(); }
</code></pre>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1139226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1139226</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 17 Sep 2006 20:01:22 GMT</pubDate></item></channel></rss>