<?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[threads anhand eines hallo world progs :D]]></title><description><![CDATA[<p>huhu, ich versteh das prinzip von threads nicht, könnte mir einer von euch vielleicht nen programm schreiben das 2x hello world aussgibt 1x das main programm und 1x das hallo world prog im thread ??? wär echt super cool von euch <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/topic/175968/threads-anhand-eines-hallo-world-progs-d</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 03:43:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175968.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Mar 2007 21:37:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Thu, 15 Mar 2007 21:37:50 GMT]]></title><description><![CDATA[<p>huhu, ich versteh das prinzip von threads nicht, könnte mir einer von euch vielleicht nen programm schreiben das 2x hello world aussgibt 1x das main programm und 1x das hallo world prog im thread ??? wär echt super cool von euch <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/1246362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1246362</guid><dc:creator><![CDATA[herrbert]]></dc:creator><pubDate>Thu, 15 Mar 2007 21:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Thu, 15 Mar 2007 22:13:23 GMT]]></title><description><![CDATA[<p>Sollte funktionieren, hab ich grad geschrieben/getestet:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; // Für Windows-Datentypen
#include &lt;process.h&gt; // für _beginthreadex, also zum Starten des Threads
#include &lt;iostream&gt; // für C++ Standard-Klassen, cout, ...
#include &lt;conio.h&gt; // für kbhit, siehe: int main() ...

using namespace std;

// Diese Daten werden an den Thread weitergeben:
struct SThreadData
{
   DWORD            dwAbortThread; // zum Steuern: Wann soll der Thread beendet werden
   CRITICAL_SECTION csCritical; // zum Synchronisieren der gemeinsam verwendeten Resourcen (in diesem Fall nur 'dwAbortThread').

   // Hier möglicherweise weitere Elemente...
};

// Thread-Funktion:
unsigned int __stdcall ThreadProc(void* pvParam)
{
   /* assert(pvParam); // wäre sinnvoll, aber nicht unbedingt nötig. */
   SThreadData* pData = static_cast&lt;SThreadData*&gt;(pvParam);
   DWORD dwCheck;
   while(true)
   {
      cout &lt;&lt; &quot;Hello World! (-&gt; ThreadProc-Function)&quot; &lt;&lt; endl;
      // Prüfen, ob der Thread beendet werden soll:
      EnterCriticalSection(&amp;pData-&gt;csCritical);
      dwCheck = pData-&gt;dwAbortThread;
      LeaveCriticalSection(&amp;pData-&gt;csCritical);
      if(dwCheck)
        break;
   }
   return (0);
}

int main()
{
   SThreadData data;
   data.dwAbortThread = FALSE;
   InitializeCriticalSection(&amp;data.csCritical);
   // Thread starten:
   HANDLE hThread = reinterpret_cast&lt;HANDLE&gt;(_beginthreadex(NULL, 0, ThreadProc, &amp;data, 0, NULL));
   while(!kbhit())
     cout &lt;&lt; &quot;Hello World! (-&gt; main-Function)&quot; &lt;&lt; endl;

   // Dem Thread das 'okay' zum Beenden geben:
   EnterCriticalSection(&amp;data.csCritical);
   data.dwAbortThread = TRUE;
   LeaveCriticalSection(&amp;data.csCritical);

   // Thread-Clean-Up:
   WaitForSingleObject(hThread, INFINITE);
   CloseHandle(hThread);
   DeleteCriticalSection(&amp;data.csCritical);
   return (0);
}
</code></pre>
<p><strong>Du musst noch beachten:</strong><br />
1. Zum compilieren, musst Du die Multithreaded-Libraries aktivieren.<br />
2. Es ist möglichweise sinnvoll (wirst Du ja sehen), wenn Du noch 2 Aufrufe von <em>Sleep</em> in die Schleifen packst, damit Du die Ausgabe auch lesen kannst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1246377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1246377</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 15 Mar 2007 22:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Fri, 16 Mar 2007 07:16:10 GMT]]></title><description><![CDATA[<p>vielen dank, durch die ganzen kommentare ist mir das jetz schon gleich viel einfacher vorgekommen, ich werd mich noch n bissi darüber informieren, aber ich denke das grundgerüst, habe ich verstanden !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1246440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1246440</guid><dc:creator><![CDATA[herrbert]]></dc:creator><pubDate>Fri, 16 Mar 2007 07:16:10 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Fri, 16 Mar 2007 08:40:52 GMT]]></title><description><![CDATA[<p>also kann ich es z.b. so realisieren:</p>
<pre><code>#include &lt;windows.h&gt; // Für Windows-Datentypen
#include &lt;process.h&gt; // für _beginthreadex, also zum Starten des Threads
#include &lt;iostream&gt; // für C++ Standard-Klassen, cout, ...
#include &lt;conio.h&gt; // für kbhit, siehe: int main() ...

using namespace std;

// Diese Daten werden an den Thread weitergeben:
struct SThreadData
{
   DWORD            dwAbortThread; // zum Steuern: Wann soll der Thread beendet werden
   CRITICAL_SECTION csCritical; // zum Synchronisieren der gemeinsam verwendeten Resourcen (in diesem Fall nur 'dwAbortThread').

   // Hier möglicherweise weitere Elemente...
};

// Thread-Funktion:
unsigned int __stdcall ThreadProc(void* pvParam)
{
   /* assert(pvParam); // wäre sinnvoll, aber nicht unbedingt nötig. */
   SThreadData* pData = static_cast&lt;SThreadData*&gt;(pvParam);
   DWORD dwCheck;
   while(true)
   {
      /* AN DIESER STELLE STEHT DER THREADCODE */
      // Prüfen, ob der Thread beendet werden soll:
      EnterCriticalSection(&amp;pData-&gt;csCritical);
      dwCheck = pData-&gt;dwAbortThread;
      LeaveCriticalSection(&amp;pData-&gt;csCritical);
      if(dwCheck)
        break;
   }
   return (0);
}

int main()
{
   SThreadData data;
   data.dwAbortThread = FALSE;
   InitializeCriticalSection(&amp;data.csCritical);
   // Thread starten:
   HANDLE hThread = reinterpret_cast&lt;HANDLE&gt;(_beginthreadex(NULL, 0, ThreadProc, &amp;data, 0, NULL));
   while(!kbhit())
     /* UND HIER STEHT DER MAIN CODE */ 

   // Dem Thread das 'okay' zum Beenden geben:
   EnterCriticalSection(&amp;data.csCritical);
   data.dwAbortThread = TRUE;
   LeaveCriticalSection(&amp;data.csCritical);

   // Thread-Clean-Up:
   WaitForSingleObject(hThread, INFINITE);
   CloseHandle(hThread);
   DeleteCriticalSection(&amp;data.csCritical);
   return (0);
}
</code></pre>
<p>Richtig so ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1246479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1246479</guid><dc:creator><![CDATA[herrbert]]></dc:creator><pubDate>Fri, 16 Mar 2007 08:40:52 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 18:23:25 GMT]]></title><description><![CDATA[<p>Hallo, mal ganz neben bei:</p>
<p>ist es schlimm wenn ich ein Thread <em>nicht schließe</em>? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Oder läuft der Prozess dann ungesteuert weiter trotz Programmende? (C kann man viel zutrauen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247410</guid><dc:creator><![CDATA[LukasBanana]]></dc:creator><pubDate>Sat, 17 Mar 2007 18:23:25 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 18:28:57 GMT]]></title><description><![CDATA[<p>LukasBanana schrieb:</p>
<blockquote>
<p>ist es schlimm wenn ich ein Thread <em>nicht schließe</em>? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Oder läuft der Prozess dann ungesteuert weiter trotz Programmende? (C kann man viel zutrauen)</p>
</blockquote>
<p>wenn dein programm beendet wird (ExitProcess o.ä.), werden auch alle threads gekillt...<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@CodeFinder</a>: dein beispiel finde ich arg kompliziert, trotz der ganzen kommentare....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247414</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 18:28:57 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 18:44:14 GMT]]></title><description><![CDATA[<p>herrbert schrieb:</p>
<blockquote>
<p>also kann ich es z.b. so realisieren: [...] Richtig so ?</p>
</blockquote>
<p>Joar, könnte man so sagen, wobei es besser wäre, wenn Du auch das Prinzip verstehen würdest <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="😉"
    /> . Im Netz müsste es aber auch ne Menge Tutorials geben (z.B.: auf <a href="http://codeproject.com" rel="nofollow">codeproject.com</a>).</p>
<p>LukasBanana schrieb:</p>
<blockquote>
<p>ist es schlimm wenn ich ein Thread <em>nicht schließe</em>? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Oder läuft der Prozess dann ungesteuert weiter trotz Programmende? (C kann man viel zutrauen)</p>
</blockquote>
<p>Der 'Prozess' (?!), also dachte den hast Du schon geschlossen und nur den Thread nicht <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="🙄"
    /> . Also ein gutes Programm beendet erst alles seine Sub-Threads und dann den Hauptthread, also 'sich selbst' <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="😉"
    /> .</p>
<p>vista schrieb:</p>
<blockquote>
<p>[...]<br />
wenn dein programm beendet wird (ExitProcess o.ä.), werden auch alle threads gekillt...</p>
</blockquote>
<p>Da sollte man aber vorsichtig sein. Wenn man sein Programm NICHT über ExitProcess beendet, trifft das nämlich auch nicht zu!</p>
<p>vista schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@CodeFinder</a>: dein beispiel finde ich arg kompliziert, trotz der ganzen kommentare....</p>
</blockquote>
<p>Du Troll! Dann schreib doch ein besseres! Mir ging es darum, dass er auch Synchronisation dabei hat, da man das eigentlich (in Bezug auf Threads) immer irgendwann braucht und critical-sections ist da nun mal relativ einfach zu verstehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247425</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Mar 2007 18:44:14 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 19:01:30 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>vista schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@CodeFinder</a>: dein beispiel finde ich arg kompliziert, trotz der ganzen kommentare....</p>
</blockquote>
<p>Du Troll! Dann schreib doch ein besseres! Mir ging es darum, dass er auch Synchronisation dabei hat, da man das eigentlich (in Bezug auf Threads) immer irgendwann braucht und critical-sections ist da nun mal relativ einfach zu verstehen.</p>
</blockquote>
<p>nix troll!<br />
warum _binginthread<strong>ex</strong>?<br />
was soll das staic_cast bzw. reinterpret_cast geraffel?<br />
in die critical section gehört das 'cout' eingepackt, nicht das abfragen der variablen...<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/1247431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247431</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 19:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 19:25:53 GMT]]></title><description><![CDATA[<p>Doch Troll!</p>
<p>vista schrieb:</p>
<blockquote>
<p>nix troll!<br />
warum _binginthread<strong>ex</strong>?</p>
</blockquote>
<p>lol, Siehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://www.microsoft.com/msj/1099/win32/win321099.aspx" rel="nofollow">http://www.microsoft.com/msj/1099/win32/win321099.aspx</a></p>
<p>vista schrieb:</p>
<blockquote>
<p>was soll das staic_cast bzw. reinterpret_cast geraffel?</p>
</blockquote>
<p>Das sind C++ Casts, die benutze ich immer. Diese sind, meiner Meinung nach, übersichtlicher und sicherer.</p>
<p>vista schrieb:</p>
<blockquote>
<p>in die critical section gehört das 'cout' eingepackt, nicht das abfragen der variablen...</p>
</blockquote>
<p>Natürlich muss der Zugriff auf die Variable gelockt werden...oha.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247445</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Mar 2007 19:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 19:38:10 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>vista schrieb:</p>
<blockquote>
<p>nix troll!<br />
warum _binginthread<strong>ex</strong>?</p>
</blockquote>
<p>lol, Siehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://www.microsoft.com/msj/1099/win32/win321099.aspx" rel="nofollow">http://www.microsoft.com/msj/1099/win32/win321099.aspx</a></p>
</blockquote>
<p>ich sagte nicht, man solle 'CreateThread' nehmen. '_beginthread' ohne EX hätte gereicht.</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>vista schrieb:</p>
<blockquote>
<p>was soll das staic_cast bzw. reinterpret_cast geraffel?</p>
</blockquote>
<p>Das sind C++ Casts, die benutze ich immer. Diese sind, meiner Meinung nach, übersichtlicher und sicherer.</p>
</blockquote>
<p>typischer anfänger-irrtum!<br />
dazu ein dickes mega-*lol*</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>vista schrieb:</p>
<blockquote>
<p>in die critical section gehört das 'cout' eingepackt, nicht das abfragen der variablen...</p>
</blockquote>
<p>Natürlich muss der Zugriff auf die Variable gelockt werden...oha.</p>
</blockquote>
<p>[/quote]<br />
in dem fall nicht, es wird nur zwichen true und false unterschieden, ein thread liest nur, der andere schreibt, du brauchst keinen lock dafür.<br />
aber das 'cout' muss synchronisiert werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247452</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 19:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 20:07:18 GMT]]></title><description><![CDATA[<p>vista schrieb:</p>
<blockquote>
<p>ich sagte nicht, man solle 'CreateThread' nehmen. '_beginthread' ohne EX hätte gereicht.</p>
</blockquote>
<p><em>_beginthread</em> lößt das in dem Artikel beschriebene Problem aber nicht.</p>
<p>vista schrieb:</p>
<blockquote>
<p>typischer anfänger-irrtum!<br />
dazu ein dickes mega-*lol*</p>
</blockquote>
<p>Sehr aufschlussreich Deine Aussage... . Naja dazu fällt mir irgendwie grad nicht viel zu ein, liegt wohl am Gehalt dieses Statements. Falls Dir Vererbung und RTTI bekannt sind, solltest Du eigentlich wissen wovon ich rede.</p>
<p>vista schrieb:</p>
<blockquote>
<p>in dem fall nicht, es wird nur zwichen true und false unterschieden</p>
</blockquote>
<p>LOL...'es wird nur zwischen true und false unterschieden'... *grinz* ... . Ich weiß grad nicht was ich sagen soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247465</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Mar 2007 20:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 20:44:46 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p><em>_beginthread</em> lößt das in dem Artikel beschriebene Problem aber nicht.</p>
</blockquote>
<p>ein 'multithreading' hello-world programm aber schon...</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Falls Dir Vererbung und RTTI bekannt sind, solltest Du eigentlich wissen wovon ich rede.</p>
</blockquote>
<p>natürlich, dein code macht ja von RTTI und vererbung ausgiebigen gebrauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>LOL...'es wird nur zwischen true und false unterschieden'... *grinz* ... . Ich weiß grad nicht was ich sagen soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ...</p>
</blockquote>
<p>...konnte ich mir denken <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
nochmal zum mitschreiben:<br />
der main-thread schreibt setzt die variable 'data.dwAbortThread' auf FALSE um den thread zu beenden. der thread kopiert diese variable sinnloserweise noch in eine lokale variable, aber egal, entscheidend ist das TRUE oder FALSE, also nicht-0 oder 0. dafür reicht es vollkommen aus, wenn sich nur ein bit verändert hat. weil der thread nur lesend darauf zugreift und 0 oder nicht-0 unterscheiden muss (du prüfst ja nicht auf 0x1234 oder 0xabcdef, was durchaus einen unterschied machen würde) brauchst du dafür keinen lock.<br />
aber das 'cout' muss einen lock bekommen, denn c++'s std:: ist nicht 'multithreading aware'!!!<br />
ich empfehle dir dringend ein paar (win32) threading tuts durchzuarbeiten!</p>
<p>btw: ...und threadprocs für _beginthreadex und _beginthread haben als aufrufkonvention nicht __stdcall sondern __cdecl, aber ich weiss, das würde dich jetzt echt überfordern... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247473</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 20:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 20:52:18 GMT]]></title><description><![CDATA[<p>2 kämpfende Fredchen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247483</guid><dc:creator><![CDATA[KennerDerTierchen]]></dc:creator><pubDate>Sat, 17 Mar 2007 20:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 20:56:26 GMT]]></title><description><![CDATA[<p>KennerDerTierchen schrieb:</p>
<blockquote>
<p>2 kämpfende Fredchen</p>
</blockquote>
<p>ääääy, pssst!<br />
<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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247484</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 20:56:26 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 21:20:46 GMT]]></title><description><![CDATA[<p>vista schrieb:</p>
<blockquote>
<p>ein 'multithreading' hello-world programm aber schon...</p>
</blockquote>
<p>Nö.</p>
<p>vista schrieb:</p>
<blockquote>
<p>natürlich, dein code macht ja von RTTI und vererbung ausgiebigen gebrauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Nein, aber es geht ums Prinzip.</p>
<p>vista schrieb:</p>
<blockquote>
<p>btw: ...und threadprocs für _beginthreadex und _beginthread haben als aufrufkonvention nicht __stdcall sondern __cdecl, aber ich weiss, das würde dich jetzt echt überfordern... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Nein das ist falsch. Siehe: <a href="http://msdn2.microsoft.com/en-us/library/kdzttdcb(vs.71).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/kdzttdcb(vs.71).aspx</a><br />
Bei _beginthread ist es __cdecl, bei _beginthreadex ist es __stdcall! <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="😉"
    /> :</p>
<p>MSDN schrieb:</p>
<blockquote>
<pre><code class="language-cpp">uintptr_t _beginthread( 
   void(    __cdecl    *start_address )( void * ),
   unsigned stack_size,
   void *arglist 
);
uintptr_t _beginthreadex( 
   void *security,
   unsigned stack_size,
   unsigned (    __stdcall    *start_address )( void * ),
   void *arglist,
   unsigned initflag,
   unsigned *thrdaddr 
);
</code></pre>
</blockquote>
<p>Auf den Text dazwischen hatte ich kein Bock, der war mir zu lang :p ^^.</p>
<p>EDIT: Hab kein Bock mehr mich zu kebbeln^^, hören wir auf ? <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247494</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Mar 2007 21:20:46 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 21:21:16 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>vista schrieb:</p>
<blockquote>
<p>btw: ...und threadprocs für _beginthreadex und _beginthread haben als aufrufkonvention nicht __stdcall sondern __cdecl, aber ich weiss, das würde dich jetzt echt überfordern... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Nein das ist falsch. Siehe: <a href="http://msdn2.microsoft.com/en-us/library/kdzttdcb(vs.71).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/kdzttdcb(vs.71).aspx</a><br />
Bei _beginthread ist es __cdecl, bei _beginthreadex ist es __stdcall! <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="😉"
    /> :</p>
</blockquote>
<p>gut, du hast recht, asche über mein haupt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
aber warum m$ sowas macht steht wohl in den sternen...</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Auf den Text dazwischen hatte ich kein Bock, der war mir zu lang :p ^^.</p>
</blockquote>
<p>schade eigentlich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247498</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 21:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 21:23:28 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>EDIT: Hab kein Bock mehr mich zu kebbeln^^, hören wir auf ? <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="😉"
    /></p>
</blockquote>
<p>Wie siehts damit aus <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="😉"
    /> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247500</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Mar 2007 21:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 21:28:30 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>EDIT: Hab kein Bock mehr mich zu kebbeln^^, hören wir auf ? <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="😉"
    /></p>
</blockquote>
<p>Wie siehts damit aus <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="😉"
    /> ?</p>
</blockquote>
<p>also ich finde wir sollten das ausdiskutieren.<br />
der OP hat doch bestimmt auch was davon...<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/1247501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247501</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 21:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 22:02:18 GMT]]></title><description><![CDATA[<p>&quot;der main-thread schreibt setzt die variable 'data.dwAbortThread' auf FALSE um den thread zu beenden. der thread kopiert diese variable sinnloserweise noch in eine lokale variable, aber egal, entscheidend ist das TRUE oder FALSE, also nicht-0 oder 0. dafür reicht es vollkommen aus, wenn sich nur ein bit verändert hat. weil der thread nur lesend darauf zugreift und 0 oder nicht-0 unterscheiden muss (du prüfst ja nicht auf 0x1234 oder 0xabcdef, was durchaus einen unterschied machen würde) brauchst du dafür keinen lock.<br />
aber das 'cout' muss einen lock bekommen, denn c++'s std:: ist nicht 'multithreading aware'!!!<br />
ich empfehle dir dringend ein paar (win32) threading tuts durchzuarbeiten! &quot;<br />
Jop, hast Recht, okay ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1247512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247512</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Mar 2007 22:02:18 GMT</pubDate></item><item><title><![CDATA[Reply to threads anhand eines hallo world progs :D on Sat, 17 Mar 2007 22:11:31 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Jop, hast Recht, okay ?</p>
</blockquote>
<p>nein, so funktioniert das nicht!<br />
du musst begründen warum du das so und so gemacht hast und mir sagen, dass ich mist schreibe...<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/1247515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1247515</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sat, 17 Mar 2007 22:11:31 GMT</pubDate></item></channel></rss>