<?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[Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben?]]></title><description><![CDATA[<p>Moin,<br />
wie kann ich mittels CreateThread einer Funktion mehr als 1 Parameter übergeben?<br />
Also so mein Funktions Header aus:</p>
<pre><code class="language-cpp">void test(int arg1,int arg2) {
</code></pre>
<p>Doch wie starte ich einen Thread mit 2 Argumenten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/241921/wie-per-createthread-einer-funktion-mehr-als-1-parameter-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 20:40:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/241921.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 May 2009 17:21:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Wed, 27 May 2009 17:21:42 GMT]]></title><description><![CDATA[<p>Moin,<br />
wie kann ich mittels CreateThread einer Funktion mehr als 1 Parameter übergeben?<br />
Also so mein Funktions Header aus:</p>
<pre><code class="language-cpp">void test(int arg1,int arg2) {
</code></pre>
<p>Doch wie starte ich einen Thread mit 2 Argumenten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716846</guid><dc:creator><![CDATA[CThread]]></dc:creator><pubDate>Wed, 27 May 2009 17:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Wed, 27 May 2009 17:33:29 GMT]]></title><description><![CDATA[<p>Das geht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716852</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 27 May 2009 17:33:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Wed, 27 May 2009 17:36:06 GMT]]></title><description><![CDATA[<p>den einen möglichen parameter benutzen und einen zeiger auf eine struct übergeben <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1716855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716855</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Wed, 27 May 2009 17:36:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Wed, 27 May 2009 18:29:48 GMT]]></title><description><![CDATA[<p>sothis_ schrieb:</p>
<blockquote>
<p>den einen möglichen parameter benutzen und einen zeiger auf eine struct übergeben <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>
</blockquote>
<p>nö wäre cheaten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1716884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716884</guid><dc:creator><![CDATA[orz]]></dc:creator><pubDate>Wed, 27 May 2009 18:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Wed, 27 May 2009 21:47:30 GMT]]></title><description><![CDATA[<p>orz schrieb:</p>
<blockquote>
<p>sothis_ schrieb:</p>
<blockquote>
<p>den einen möglichen parameter benutzen und einen zeiger auf eine struct übergeben <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>
</blockquote>
<p>nö wäre cheaten</p>
</blockquote>
<p><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/1716960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1716960</guid><dc:creator><![CDATA[MisterX]]></dc:creator><pubDate>Wed, 27 May 2009 21:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Thu, 28 May 2009 09:30:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct bla
{
	int arg1;
	int arg2;
}

void test(int arg1, int arg2)
{
	int i = arg1 + arg2;
}

DWORD ThreadProc(LPVOID lpParameter)
{
	bla *p = reinterpret_cast&lt;bla*&gt;(lpParameter);
	test(p-&gt;arg1, p-&gt;arg2);

	return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
	DWORD dwThreadId;
	bla *p = new bla;
	p-&gt;arg1 = 5;
	p-&gt;arg2 = 10;
	CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ThreadProc, p, NULL, &amp;dwThreadId);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1717126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1717126</guid><dc:creator><![CDATA[arnold72]]></dc:creator><pubDate>Thu, 28 May 2009 09:30:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Thu, 28 May 2009 09:33:08 GMT]]></title><description><![CDATA[<p>delete nicht vergessen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1717127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1717127</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 28 May 2009 09:33:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Thu, 28 May 2009 10:00:25 GMT]]></title><description><![CDATA[<p>das mit dem delete ist aber so ne sache..^^</p>
<p>du kannst das delete nicht in der thread funktion aufrufen, weil der speicher ja in einem anderen thread allokiert wurde..</p>
<p>also musst du in der funktion die den thread startet warten bis die thread funktion beendet wurde, und dann kannst du den speicher wieder freigeben..</p>
<p>oder du musst dir was anderes überlegen.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> zb mit HeapCreate nen eigenen heap erstellen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1717140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1717140</guid><dc:creator><![CDATA[arnold72]]></dc:creator><pubDate>Thu, 28 May 2009 10:00:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Thu, 28 May 2009 10:35:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">DWORD test(int arg1, int arg2)
{
    return arg1+arg2;
}

int main()
{
    struct ThreadProxy
    {
        static DWORD ThreadProc(LPVOID)
        {
            return test(23, 42);
        }
    }

    CreateThread(0, 0, ThreadProxy::ThreadProc, 0, 0, 0);
}
</code></pre>
<p>Aus dem Handgelenk, deshalb völlig ungetestet.<br />
Eventuell auch zu beachten: <a href="http://blog.m-ri.de/index.php/2007/11/28/createthread-und-die-crt/" rel="nofollow">http://blog.m-ri.de/index.php/2007/11/28/createthread-und-die-crt/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1717149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1717149</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Thu, 28 May 2009 10:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Thu, 28 May 2009 11:02:17 GMT]]></title><description><![CDATA[<p>arnold72 schrieb:</p>
<blockquote>
<p>das mit dem delete ist aber so ne sache..^^<br />
du kannst das delete nicht in der thread funktion aufrufen, weil der speicher ja in einem anderen thread allokiert wurde..</p>
</blockquote>
<p>Quark. Man kann delete aus jedem Thread aufrufen egal wo der Speicher in diesem Prozess allokiert wurde.</p>
<p>arnold72 schrieb:</p>
<blockquote>
<p>also musst du in der funktion die den thread startet warten bis die thread funktion beendet wurde, und dann kannst du den speicher wieder freigeben..<br />
oder du musst dir was anderes überlegen.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> zb mit HeapCreate nen eigenen heap erstellen..</p>
</blockquote>
<p>Nö!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1717168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1717168</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 28 May 2009 11:02:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie per CreateThread einer Funktion mehr als 1 Parameter übergeben? on Thu, 28 May 2009 11:08:00 GMT]]></title><description><![CDATA[<p>arnold72 schrieb:</p>
<blockquote>
<p>das mit dem delete ist aber so ne sache..^^</p>
<p>du kannst das delete nicht in der thread funktion aufrufen, weil der speicher ja in einem anderen thread allokiert wurde..</p>
<p>also musst du in der funktion die den thread startet warten bis die thread funktion beendet wurde, und dann kannst du den speicher wieder freigeben..</p>
<p>oder du musst dir was anderes überlegen.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> zb mit HeapCreate nen eigenen heap erstellen..</p>
</blockquote>
<p>Man könnte ...<br />
die Struktur lokal in der main-Funktion anlegen<br />
die Struktur global anlegen<br />
die Struktur auf dem Heap allokieren und ein Event (global oder als Member der Struktur) anlegen, welches vom Thread signalisiert wird, nachdem im Thread die Daten in eine lokale Variable kopiert worden sind und in der threadstartenden Funktion auf dieses Event warten, dann delete ausführen</p>
<p>Aber trotz alledem kann man der Threadfunktion nach wie vor nur einen Parameter übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1717173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1717173</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 28 May 2009 11:08:00 GMT</pubDate></item></channel></rss>