<?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 hier sinnvoll?]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem Programm brauche ich eine Funktion, die eine andere Funktion nach einer bestimmten Zeit aufruft. Nun habe ich mir überlegt, die aufrufende Funktion in einem separaten Thread laufen zu lassen. Zur Verdeutlichung:</p>
<pre><code class="language-cpp">void funktion () {
// tue hier irgendwas
}

void aufrufende_funktion () { // soll in einem separaten Thread laufen
Sleep (20); // der &quot;Timer&quot;
funktion ();
}
</code></pre>
<p>Nun meine Fragen:<br />
1. Ist die Verwendung eines Threads in diesem Fall sinnvoll (man muss bedenken, dass es sich hierbei um eine GUI-Anwendung handelt) und wenn ja, welche Threads soll ich verwenden (Boost, gtkmm, etc.)<br />
2. Ist Sleep () bzw. das Unix-Pendant sleep () hierfür geeignet?<br />
3. Sollte ich einen Funktionszeiger übergeben, oder die Funktion einfach so aufrufen (ich denke, dass sie Methoden der selben Klasse sein werden)</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187609/thread-hier-sinnvoll</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 17:23:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187609.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Jul 2007 21:39:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sat, 21 Jul 2007 21:39:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>in meinem Programm brauche ich eine Funktion, die eine andere Funktion nach einer bestimmten Zeit aufruft. Nun habe ich mir überlegt, die aufrufende Funktion in einem separaten Thread laufen zu lassen. Zur Verdeutlichung:</p>
<pre><code class="language-cpp">void funktion () {
// tue hier irgendwas
}

void aufrufende_funktion () { // soll in einem separaten Thread laufen
Sleep (20); // der &quot;Timer&quot;
funktion ();
}
</code></pre>
<p>Nun meine Fragen:<br />
1. Ist die Verwendung eines Threads in diesem Fall sinnvoll (man muss bedenken, dass es sich hierbei um eine GUI-Anwendung handelt) und wenn ja, welche Threads soll ich verwenden (Boost, gtkmm, etc.)<br />
2. Ist Sleep () bzw. das Unix-Pendant sleep () hierfür geeignet?<br />
3. Sollte ich einen Funktionszeiger übergeben, oder die Funktion einfach so aufrufen (ich denke, dass sie Methoden der selben Klasse sein werden)</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330008</guid><dc:creator><![CDATA[basti33]]></dc:creator><pubDate>Sat, 21 Jul 2007 21:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sat, 21 Jul 2007 22:00:42 GMT]]></title><description><![CDATA[<p>für solche aufgaben bieten die meisten toolkits timer klassen an, denen ne zeit und nen funktionszeiger mitgegeben wird. funktioniert aber grundsätzlich über threads sowas. dafür sind die dinger schließlich da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330018</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sat, 21 Jul 2007 22:00:42 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 02:33:09 GMT]]></title><description><![CDATA[<p>NEIN, für sowas verwendet man in GUI Appliaktionen doch keine Threads *wein*.</p>
<p>Unter Windows verwendet man hier z.B. üblicherweise SetTimer, was zur Folge hat dass nach dem Ablauf der Zeit eine Window Message (WM_TIMER) gepostet wird, und in dem Message Handler für WM_TIMER tut man dann eben was zu tun ist.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15904">@basti33</a>:<br />
Du solltest dir eines überlegen: du willst dass die Funktion nach 20 msec oder 20 sec oder was auch immer ausgeführt wird. Soweit so gut. Nur was soll bzw. darf der &quot;Hauptthread&quot; tun während die Funktion dann ausgeführt wird?<br />
Das &quot;tu hier irgendwas&quot; ist eben entscheidend, denn oft ist das &quot;irgendwas&quot; etwas was NICHT gleichzeitig mit beliebigem Code laufen darf den der &quot;Hauptthread&quot; gerade ausführen könnte.<br />
Und wenn das der Fall ist macht es kaum einen Sinn einen eigenen Thread zu bemühen, da man dann ganz böse anfangen müsste gewisse Zugriffe zu synchronisieren damit kein Unsinn passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330048</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 22 Jul 2007 02:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 05:54:29 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>NEIN, für sowas verwendet man in GUI Appliaktionen doch keine Threads *wein*.</p>
<p>Unter Windows verwendet man hier z.B. üblicherweise SetTimer, was zur Folge hat dass nach dem Ablauf der Zeit eine Window Message (WM_TIMER) gepostet wird, und in dem Message Handler für WM_TIMER tut man dann eben was zu tun ist.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15904">@basti33</a>:<br />
Du solltest dir eines überlegen: du willst dass die Funktion nach 20 msec oder 20 sec oder was auch immer ausgeführt wird. Soweit so gut. Nur was soll bzw. darf der &quot;Hauptthread&quot; tun während die Funktion dann ausgeführt wird?<br />
Das &quot;tu hier irgendwas&quot; ist eben entscheidend, denn oft ist das &quot;irgendwas&quot; etwas was NICHT gleichzeitig mit beliebigem Code laufen darf den der &quot;Hauptthread&quot; gerade ausführen könnte.<br />
Und wenn das der Fall ist macht es kaum einen Sinn einen eigenen Thread zu bemühen, da man dann ganz böse anfangen müsste gewisse Zugriffe zu synchronisieren damit kein Unsinn passiert.</p>
</blockquote>
<p>Du kannst sagen, dass man keinen Thread nehmen soll und schreibst gleich drunter, dass man eigentlich wissen müsste, was die funktion macht, damit man sagen kann, ob man einen Thread nehmen kann.</p>
<p>Wenn das was die Funktion macht &quot;sehr lang&quot; braucht, sollte man auf keinen Fall WM_TIMER nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330061</guid><dc:creator><![CDATA[interessant]]></dc:creator><pubDate>Sun, 22 Jul 2007 05:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 07:54:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hatte vergessen zu erwähnen, dass ich eine platformunabhängige Lösung brauche. WM_TIMER fällt von daher schon einmal weg.<br />
@ thordk<br />
Die Funktion, die aufgerufen wird, <strong>ist</strong> im Hauptthread. Ich möchte den Timer in einem separaten Thread laufen lassen. Während der Timer läuft soll der Hauptthread nur die Möglichkeit das Programm zu beenden und den Timer zu stoppen anbieten. Wenn der Timer abgelaufen ist, kann er und der entsprechende Thread auch wieder gestoppt werden.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330073</guid><dc:creator><![CDATA[basti33]]></dc:creator><pubDate>Sun, 22 Jul 2007 07:54:59 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 08:15:17 GMT]]></title><description><![CDATA[<p>basti33 schrieb:</p>
<blockquote>
<p>ich hatte vergessen zu erwähnen, dass ich eine platformunabhängige Lösung brauche. WM_TIMER fällt von daher schon einmal weg.</p>
</blockquote>
<p>und threads beim crossplatform-proggen erst recht! das würde nochmal verdammt schwerer werden. dann doch besser eine fertige library à la boost.thread!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330075</guid><dc:creator><![CDATA[O_0]]></dc:creator><pubDate>Sun, 22 Jul 2007 08:15:17 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 08:29:03 GMT]]></title><description><![CDATA[<p>nu macht euch ma nich ins hemd. threads sind ne ganz normale geschichte. man muss nur drauf achten, dass man nur reentrante funktionen aufruft. dann ist das ganze gedöns thread-safe und verursacht null probleme.</p>
<p>dass man nen timer ohne thread lösen kann ist sicherlich richtig, aber dann muss man entweder methoden einer bestimmten plattform verwenden oder seine applikation so entwerfen, dass sie &quot;tickt&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330078</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sun, 22 Jul 2007 08:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 08:31:44 GMT]]></title><description><![CDATA[<p>schaut euch mal boost::asio an</p>
<p>das kann neben der netzwerkfunktion auch funktionen nach einer best. zeit starten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330080</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Sun, 22 Jul 2007 08:31:44 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 11:18:08 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-8.html" rel="nofollow">Rund um die Programmierung</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/1330167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330167</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sun, 22 Jul 2007 11:18:08 GMT</pubDate></item><item><title><![CDATA[Reply to Thread hier sinnvoll? on Sun, 22 Jul 2007 15:45:48 GMT]]></title><description><![CDATA[<p>thordk schrieb:</p>
<blockquote>
<p>nu macht euch ma nich ins hemd. threads sind ne ganz normale geschichte. man muss nur drauf achten, dass man nur reentrante funktionen aufruft. dann ist das ganze gedöns thread-safe und verursacht null probleme.</p>
</blockquote>
<p>Ach Gott, wennst glaubst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330263</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 22 Jul 2007 15:45:48 GMT</pubDate></item></channel></rss>