<?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[thread]]></title><description><![CDATA[<p>ich will einen thread erstellen - das klappt auch schon ganz gut:</p>
<pre><code class="language-cpp">_beginthread (dosock, 4096, NULL);
</code></pre>
<p>allerdings soll der auch events auslösen können, auf die andere threads reagieren können:</p>
<pre><code class="language-cpp">HANDLE **asd = new HANDLE*[10];
asd[0] = new HANDLE[5];
asd[0][0] = CreateEvent (NULL, false, false, NULL);
_beginthread (dosock, 4096, (void *) asd);
</code></pre>
<p>wenn ich ihm aber nun seine Zeile zuweisen soll, wie lös ich das am elegantesten?<br />
mit pair &lt;handles, zeilennr.&gt;?<br />
macht man das überhaupt so oder is das scho ma komplett falsch?</p>
<p>außerdem bin ich mir auch unsicher, was die 4KB betrifft - kann ich das den Thread irgendwie dynamisch regeln lassen? und was zählt in die 4KB alles mit rein? würde das array mitzählen, obwohl ich nur nen pointer darauf übergebe?</p>
<p>bevor jmd was sagt: ja, ich weiß, dass das handle threadsicher sein muss - hab ich mit events gelöst - criticalsession ging iwie nicht - hab ich mich zu doof angestellt ^^</p>
<p>die letzte frage:<br />
nimmt man in C++ überhuapt noch _beginthread oder ist das C und gibts ne bessere Funktion?</p>
<p>Danke : &gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197715/thread</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 13:54:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197715.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Nov 2007 23:32:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to thread on Tue, 13 Nov 2007 23:32:21 GMT]]></title><description><![CDATA[<p>ich will einen thread erstellen - das klappt auch schon ganz gut:</p>
<pre><code class="language-cpp">_beginthread (dosock, 4096, NULL);
</code></pre>
<p>allerdings soll der auch events auslösen können, auf die andere threads reagieren können:</p>
<pre><code class="language-cpp">HANDLE **asd = new HANDLE*[10];
asd[0] = new HANDLE[5];
asd[0][0] = CreateEvent (NULL, false, false, NULL);
_beginthread (dosock, 4096, (void *) asd);
</code></pre>
<p>wenn ich ihm aber nun seine Zeile zuweisen soll, wie lös ich das am elegantesten?<br />
mit pair &lt;handles, zeilennr.&gt;?<br />
macht man das überhaupt so oder is das scho ma komplett falsch?</p>
<p>außerdem bin ich mir auch unsicher, was die 4KB betrifft - kann ich das den Thread irgendwie dynamisch regeln lassen? und was zählt in die 4KB alles mit rein? würde das array mitzählen, obwohl ich nur nen pointer darauf übergebe?</p>
<p>bevor jmd was sagt: ja, ich weiß, dass das handle threadsicher sein muss - hab ich mit events gelöst - criticalsession ging iwie nicht - hab ich mich zu doof angestellt ^^</p>
<p>die letzte frage:<br />
nimmt man in C++ überhuapt noch _beginthread oder ist das C und gibts ne bessere Funktion?</p>
<p>Danke : &gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402827</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 13 Nov 2007 23:32:21 GMT</pubDate></item><item><title><![CDATA[Reply to thread on Wed, 14 Nov 2007 06:18:15 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>nimmt man in C++ überhuapt noch _beginthread oder ist das C und gibts ne bessere Funktion?</p>
</blockquote>
<p>Weder der C noch der C++ Standard kennt überhaupt Threads. Alle Threadtechniken sind mehr oder weniger Plattformabhängig, wenn gleich es Bibliotheken gibt die es für den Anwender verbergen. Erst der kommende C++ Standard wird voraussichtlich Threads in den Standard übernehmen.</p>
<p>cu André<br />
P.S: Das sieht für mich wie Win32 API aus. Wenn ja, es gibt ein entsprechendes Unterforum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402851</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 14 Nov 2007 06:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to thread on Wed, 14 Nov 2007 11:51:18 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/1403003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403003</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 14 Nov 2007 11:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to thread on Wed, 14 Nov 2007 14:23:33 GMT]]></title><description><![CDATA[<p>Gib als Stack-Grösse einfach 0 an, dann regelt Windows das dynamisch bis max. 1MB (und 1MB reicht normalerweise locker).<br />
Weniger kannst du mit _beginthreadex AFAIK sowieso nicht erzwingen.</p>
<p>Zur Übergabe von Daten an den Thread solltest du die in eine Struktur packen, z.B. so:</p>
<pre><code class="language-cpp">struct MyThreadParams
{
    HANDLE events[5];
    int blablubb;
    // ...
};

// thread funktion:

unsigned __stdcall MyThreadFunction(void * p)
{
    std::auto_ptr&lt;MyThreadParams&gt; params(static_cast&lt;MyThreadParams*&gt;(p));

    // ...
}

// thread erstellen:

MyThreadParams* params = new MyThreadParams;
// *params ausfüllen
HANDLE threadHandle = reinterpret_cast&lt;HANDLE&gt;(_beginthreadex(0, 0, MyThreadFunction, params, 0, 0));
if (!threadHandle)
{
    // thread konnte nicht erstellt werden
    delete params;
    // ...
}
</code></pre>
<p>Du *musst* die &quot;Parameter&quot; für den Thread natürlich nicht dynamisch anfordern/freigeben, aber du kannst nur einen einzigen Zeiger übergeben, und die oben gezeigte Variante eignet sich für die meisten Fälle recht gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403114</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 14 Nov 2007 14:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to thread on Wed, 14 Nov 2007 16:33:10 GMT]]></title><description><![CDATA[<p>gut - danke...<br />
dachte nur, dasses evtl au einfacher geht : &lt;</p>
<p>Tom</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403207</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 14 Nov 2007 16:33:10 GMT</pubDate></item><item><title><![CDATA[Reply to thread on Wed, 14 Nov 2007 18:51:30 GMT]]></title><description><![CDATA[<p>wieso, das ist doch einfach???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403301</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 14 Nov 2007 18:51:30 GMT</pubDate></item></channel></rss>