<?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[Threading in C++]]></title><description><![CDATA[<p>Hi Leute!!</p>
<p>Ich wollte mal fragen, ob jemand diesen Quellcode ausführlich erklären kann, da ich davon gar nichts verstehe. Es war auch schonmal ein Beitrag in diesem Forum, dort wurde aber nichts dazu erläutert. Danke im voraus.</p>
<p>C/C++ Code:<br />
#include &lt;cstdlib&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;winbase.h&gt;</p>
<p>using namespace std;</p>
<p>void runInThread();</p>
<p>int main(int argc, char *argv[]) {<br />
unsigned long threadId;<br />
HANDLE hThread = CreateThread(<br />
NULL, 2000, (LPTHREAD_START_ROUTINE)runInThread, p1, p2, &amp;threadId<br />
);<br />
for(int i=0;i&lt;20;++i) {<br />
printf(&quot;Ich komme aus main!&quot;);<br />
}<br />
system(&quot;PAUSE&quot;);<br />
return EXIT_SUCCESS;<br />
}</p>
<p>void runInThread() {<br />
for(int i=0;i&lt;20;++i) {<br />
printf(&quot;Ich komme aus runInThread!&quot;);<br />
}<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193325/threading-in-c</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 14:22:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193325.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Sep 2007 08:39:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 08:39:12 GMT]]></title><description><![CDATA[<p>Hi Leute!!</p>
<p>Ich wollte mal fragen, ob jemand diesen Quellcode ausführlich erklären kann, da ich davon gar nichts verstehe. Es war auch schonmal ein Beitrag in diesem Forum, dort wurde aber nichts dazu erläutert. Danke im voraus.</p>
<p>C/C++ Code:<br />
#include &lt;cstdlib&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;winbase.h&gt;</p>
<p>using namespace std;</p>
<p>void runInThread();</p>
<p>int main(int argc, char *argv[]) {<br />
unsigned long threadId;<br />
HANDLE hThread = CreateThread(<br />
NULL, 2000, (LPTHREAD_START_ROUTINE)runInThread, p1, p2, &amp;threadId<br />
);<br />
for(int i=0;i&lt;20;++i) {<br />
printf(&quot;Ich komme aus main!&quot;);<br />
}<br />
system(&quot;PAUSE&quot;);<br />
return EXIT_SUCCESS;<br />
}</p>
<p>void runInThread() {<br />
for(int i=0;i&lt;20;++i) {<br />
printf(&quot;Ich komme aus runInThread!&quot;);<br />
}<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372163</guid><dc:creator><![CDATA[Reaper1]]></dc:creator><pubDate>Tue, 25 Sep 2007 08:39:12 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 08:46:25 GMT]]></title><description><![CDATA[<p>CreateThread() startet einen zusätzlichen Thread, der parallel zum Hauptprogramm abgearbeitet wird. D.h. nach dem Aufruf laufen &quot;gleichzeitig&quot; (da die meisten Rechner nur einen Prozessor haben, wechseln sie sich in Wirklichkeit mit der Arbeit ab) die Schleife im Hauptprogramm und in der Threadfunktion - und du erhältst in zufälliger Reihenfolge die Meldungen &quot;Ich komme aus main!&quot; und &quot;Ich komme aus runInThread!&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372169</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Sep 2007 08:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 08:46:43 GMT]]></title><description><![CDATA[<p>mit der funktion 'CreateThread' wird ein thread gestartet, der 20 mal durch eine schleife läuft und sich dann selbst beendet.<br />
--&gt; <a href="http://msdn2.microsoft.com/en-us/library/ms682453.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms682453.aspx</a><br />
<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/1372170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372170</guid><dc:creator><![CDATA[Apeman]]></dc:creator><pubDate>Tue, 25 Sep 2007 08:46:43 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 08:47:03 GMT]]></title><description><![CDATA[<p>Thread starten:</p>
<pre><code class="language-cpp">HANDLE hThread = CreateThread( 
NULL, 2000, (LPTHREAD_START_ROUTINE)runInThread, p1, p2, &amp;threadId 
);
</code></pre>
<p>Der Thread beararbeitung findet in:</p>
<pre><code class="language-cpp">void runInThread() { 
for(int i=0;i&lt;20;++i) { 
printf(&quot;Ich komme aus runInThread!&quot;); 
} 
}
</code></pre>
<p>statt:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372171</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 25 Sep 2007 08:47:03 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 08:54:37 GMT]]></title><description><![CDATA[<p>Für was steht denn das p1 und p2? Könnt ihr mir auch sagen, wie ich das vereinbaren muss?</p>
<p>Ich bekomme nämlich diese Fehlermeldung: 'p1' undeclared... das selbe gilt für p2.<br />
Ich habe mir so überlegt das die doch bestimmt pointer sind aber wenn ich einfach mal ausprobiere die als int oder long oder DWORD zu deklariern sagt der mir das wieder irgendwas nich gehen will im Bezug auf die Funktion CreateThread. Wieder danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372179</guid><dc:creator><![CDATA[Reaper1]]></dc:creator><pubDate>Tue, 25 Sep 2007 08:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 09:01:13 GMT]]></title><description><![CDATA[<p>Lies dir doch einfach mal den geposteten Link durch, dann weißt du auch was er an der Stelle für Parameter haben will...</p>
<p>Gruß<br />
zeigerzeiger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372186</guid><dc:creator><![CDATA[zeigerzeiger]]></dc:creator><pubDate>Tue, 25 Sep 2007 09:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 09:01:43 GMT]]></title><description><![CDATA[<p>Woher hast du denn den Code? Normalerweise sollten dort auch die verwendeten Variablen dabeistehen.</p>
<p>Technisch:</p>
<ul>
<li>p1 ist ein void* und wird als Parameter an den Thread übergeben (die Threadfunktion ist korrekterweise auch als &quot;int runInTread(void*);&quot; definiert und nicht als &quot;void runInThread();&quot;) - wenn du den Parameter nicht brauchst, übergib' NULL.</li>
<li>p2 ist ein DWORD-Wert und stellt die Flags für den Thread-Start ein - entweder 0 (der Thread startet sofort) oder CREATE_SUSPENDED (der Thread muß später mit ResumeThread() gestartet werden).</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1372189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372189</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Sep 2007 09:01:43 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 09:13:23 GMT]]></title><description><![CDATA[<p>Kannste mir auch sagen, was das LPTHREAD_START_ROUTINE bedeutet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372200</guid><dc:creator><![CDATA[Reaper1]]></dc:creator><pubDate>Tue, 25 Sep 2007 09:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 09:17:19 GMT]]></title><description><![CDATA[<p>Reaper1 schrieb:</p>
<blockquote>
<p>Kannste mir auch sagen, was das LPTHREAD_START_ROUTINE bedeutet?</p>
</blockquote>
<p>Das ist ein Funktionszeiger (auf eine &quot;DWORD xyz(LPVOID);&quot;-Funktion). In deinem Fall mußt du den übergebenen Funktionszeiger explizit casten, weil er nicht die korrekte Signatur hat - ist aber alles andere als sauber.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372203</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Sep 2007 09:17:19 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 09:27:34 GMT]]></title><description><![CDATA[<p>Reaper1 schrieb:</p>
<blockquote>
<p>Kannste mir auch sagen, was das LPTHREAD_START_ROUTINE bedeutet?</p>
</blockquote>
<pre><code>DWORD __stdcall funktionsname (void *p)
</code></pre>
<p><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/1372216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372216</guid><dc:creator><![CDATA[Apeman]]></dc:creator><pubDate>Tue, 25 Sep 2007 09:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 09:30:09 GMT]]></title><description><![CDATA[<p>Was heißt denn das &quot;HANDLE hThread&quot;... das ist doch bestimmt eine Vereinbarung oder? Von welchen Typ ist das und wozu dient es? Wenn ich es weg lasse geht das Programm zwar noch, möchte es aber trotzdem mal rein informativ wissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372217</guid><dc:creator><![CDATA[Reaper1]]></dc:creator><pubDate>Tue, 25 Sep 2007 09:30:09 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 09:33:10 GMT]]></title><description><![CDATA[<p>Ein HANDLE ist eine Art ID, mit der du später den gestarteten Thread wiederfinden kannst (zmu Beispiel um ihn vorübergehend anzuhalten oder um zu warten, bis er beendet wurde). Was genau es darstellt, muß dich nicht interessieren - Funktionen wie SuspendThread() oder WaitForSingleObject() wissen, was sie mit dem Handle machen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372219</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Sep 2007 09:33:10 GMT</pubDate></item><item><title><![CDATA[Reply to Threading in C++ on Tue, 25 Sep 2007 12:31:52 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372363</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 25 Sep 2007 12:31:52 GMT</pubDate></item></channel></rss>