<?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[Methoden nach bestimmter Zeit starten]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich suche eine Möglichkeit Methoden nach einer bestimmten Zeiteinheit zu starten.<br />
Quasi so:</p>
<p>nach 0 Sekunden: Starte Methode1<br />
nach 3 Sekunden: Starte Methode2<br />
nach 6 Sekunden: Starte Methode3</p>
<p>Das ganze soll unabhängig davon funktionieren, ob die vorherige Methode schon fertig ist oder nicht und ohne Threads funktionieren (hab zumindest mal gehört, dass es sowas gibt).</p>
<p>Kann mir jemand helfen?<br />
GRuß<br />
-j</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179197/methoden-nach-bestimmter-zeit-starten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 04:19:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179197.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Apr 2007 11:52:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 11:52:32 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich suche eine Möglichkeit Methoden nach einer bestimmten Zeiteinheit zu starten.<br />
Quasi so:</p>
<p>nach 0 Sekunden: Starte Methode1<br />
nach 3 Sekunden: Starte Methode2<br />
nach 6 Sekunden: Starte Methode3</p>
<p>Das ganze soll unabhängig davon funktionieren, ob die vorherige Methode schon fertig ist oder nicht und ohne Threads funktionieren (hab zumindest mal gehört, dass es sowas gibt).</p>
<p>Kann mir jemand helfen?<br />
GRuß<br />
-j</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269186</guid><dc:creator><![CDATA[joergh]]></dc:creator><pubDate>Thu, 19 Apr 2007 11:52:32 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 11:56:40 GMT]]></title><description><![CDATA[<p>Ohne Threads wirst du die Bedingung &quot;unabhängig davon ..., ob die vorherige Methode schon fertig is&quot; nicht realisieren können. Schließlich kann der Prozessor nur eine Funktion zur selben Zeit ausführen - und solange alles in einem Thread passiert, bekommt die Zeitüberwachung erst wieder das Kommando, wenn die vorige Funktion fertig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269189</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 Apr 2007 11:56:40 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 11:59:58 GMT]]></title><description><![CDATA[<p>Selbst wenn es ohne Threads möglich sein sollte (bin nicht davon überzeugt) würde ich Timer + Threads als optimale Lösung ansehen. Sehe noch kein Argument in deinem Posting warum Timer + Threads nicht zum Einsatz kommen sollen.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269192</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 19 Apr 2007 11:59:58 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:01:14 GMT]]></title><description><![CDATA[<p>Dann ändern wir es so:</p>
<blockquote>
<p>nach 0 Sekunden: Starte Methode1<br />
nach 3 Sekunden: Starte Methode2, sofern Methode1 fertig, sonst Fehlermeldung<br />
nach 6 Sekunden: Starte Methode3, sofern Methode1+2 fertig, sonst Fehlermeldung<br />
...</p>
</blockquote>
<p>Geht das? Falls ja, wie?</p>
<p>Grüße!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269194</guid><dc:creator><![CDATA[joergh]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:01:14 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:02:10 GMT]]></title><description><![CDATA[<p>Nicht ohne Timer, die dann wiederum Threading verwenden.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269196</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:02:10 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:02:35 GMT]]></title><description><![CDATA[<p>kann man keine funktionzeiger anlegen jeder einzelen funktione, die dann in ein array reinhauen, und diese dann in aeinem trhead nacheinader ausführen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269197</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:02:35 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:03:16 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>kann man keine funktionzeiger anlegen jeder einzelen funktione, die dann in ein array reinhauen, und diese dann in aeinem trhead nacheinader ausführen?</p>
</blockquote>
<p>Ja klar, nur ist offenbar Anforderung ohne Threads zurechtzukommen.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269198</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:03:16 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:04:46 GMT]]></title><description><![CDATA[<p>unmöglich;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269199</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:07:00 GMT]]></title><description><![CDATA[<p>Hatte mal aufgeschnappt, dass es wohl ohne Theads geht, aber nach so vielen Gegenstimmen...</p>
<p>Hat jemand dann ein gutes Beispiel für Timer+Threads?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269202</guid><dc:creator><![CDATA[joergh]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:07:47 GMT]]></title><description><![CDATA[<p>Unter UNIX könnte man noch einen Alarm installieren (alarm + signal + SIGALRM), der unterbricht nach einer gewissen Zeit was auch immer gerade läuft und steuert einen Signalhandler an. Von dem aus könnte man ein Flag setzen welches die Funktion zur Rückkehr und das Hauptprogramm zur Ausgabe einer Fehlermeldung veranlasst. Keine Ahnung ob es Alarm unter Windows auch gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269203</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:12:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13493">@joergh</a>: Wie ich schon oben sagte: Ohne Threads bekommt das Hauptprogramm erst wieder die Kontrolle, wenn die letzte aufgerufene Funktion sich beendet hat. Bis dahin kannst du weder eine weitere Funktion anstarten noch eine Fehlermeldung ausgeben. Du kannst höchstens am Ende von Methode1 kontrollieren, ob du noch im Zeitplan bist.</p>
<p>PS: Benutz mal die Suchfunktion (gerade im MFC-Board tauchen regelmäßig Fragen zu Threads auf) oder die MSDN, wenn du Beispiele benötigst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269210</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:12:19 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:12:31 GMT]]></title><description><![CDATA[<p>joergh schrieb:</p>
<blockquote>
<p>Hatte mal aufgeschnappt, dass es wohl ohne Theads geht, aber nach so vielen Gegenstimmen...</p>
<p>Hat jemand dann ein gutes Beispiel für Timer+Threads?</p>
<p>Danke!</p>
</blockquote>
<p>Timer brauchst du in deinem speziellen Fall gar nicht, dir reicht eigentlich soetwas:</p>
<pre><code class="language-cpp">typedef &lt;...&gt; Func;
Func func [3];
func[0] = func1;
func[1] = func2;
func[2] = func3;

for(int i = 0; 0 &lt; 3; ++i)
{
    CreateThread ( func[i] );
    Sleep ( 3000 );
}
</code></pre>
<p>Threads kannst du über verschiedene APIs erstellen. Da wäre zum Beispiel die Möglichkeit für Windows mit Hilfe der WinAPI (CreateThread - siehe MSDN). Für Linux gibts glaube ich beginthread().</p>
<p>Aber du kannst z.B. auch guten Gewissens die boost::thread-Bibliothek aus Boost verwenden.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269211</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:18:37 GMT]]></title><description><![CDATA[<p>auf SPS gehts <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/1269218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269218</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:25:33 GMT]]></title><description><![CDATA[<p>Das SideWinder-Beispiel hilft mir so leider doch nicht...</p>
<p>Methode1 soll zum Zeitpunkt 0 gestartet werden.<br />
Nach 3 Sekunden soll geguckt wernde, ob Methode1 noch läuft. Wenn ja: Warnung, wenn nein: Methode 2 starten.#</p>
<p>Danke für Eure Hilfe und Eure GEduld...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269226</guid><dc:creator><![CDATA[joergh]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:25:33 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:29:02 GMT]]></title><description><![CDATA[<p>Und was soll passieren wenn die Warnung abgegeben wurde? Warten bis die 1. Funktion beendet wurde oder soll dann die 2. Funktion trotzdem sofort gestartet werden oder soll die 2. Funktion nie gestartet werden?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269229</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:29:02 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:29:31 GMT]]></title><description><![CDATA[<p>SideWinders Beispiel läuft ja auch auf deine ursprüngliche Anforderung hinaus - alle drei Sekunden eine Funktion starten und laufen lassen. Wenn du die überprüfen willst, ob die vorige Funktion noch läuft, kannst du das von CreateThread() gelieferte Handle aufheben und auswerten:</p>
<pre><code class="language-cpp">for(int i = 0; 0 &lt; 3; ++i)
{
    HANDLE h = CreateThread ( func[i] );
    Sleep ( 3000 );
    if(WaitForSingleObject(h,0)==WAIT_TIMEOUT)
    {
        cout&lt;&lt;&quot;Funktion noch aktiv&quot;;
        break;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1269230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269230</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:33:40 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Und was soll passieren wenn die Warnung abgegeben wurde? Warten bis die 1. Funktion beendet wurde oder soll dann die 2. Funktion trotzdem sofort gestartet werden oder soll die 2. Funktion nie gestartet werden?</p>
</blockquote>
<p>Nach dem gleichen Zeitfenster wird erneut geprüft: Methode1 läuft noch: Warnung, läuft nicht mehr: Methode 2.<br />
Wenn Warnung: Wieder gleiches Zeitfenster abwarten und .. s.o.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269233</guid><dc:creator><![CDATA[joergh]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:33:40 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden nach bestimmter Zeit starten on Thu, 19 Apr 2007 12:42:46 GMT]]></title><description><![CDATA[<p>Dann baust du CSTolls Beispiel etwas um:</p>
<pre><code class="language-cpp">bool printWarning () { cout &lt;&lt; &quot;Warnung&quot; &lt;&lt; endl; return true; }

for(int i = 0; i &lt; 3; ++i)
{
    HANDLE h = CreateThrad(...);
    do
    {
        Sleep(3000);
    }
    while(WaitForSingleObject(h,0) == WAIT_TIMEOUT &amp;&amp; printWarning());
}
</code></pre>
<p>Wenn du nicht die WinAPI benützt, kannst du das als Muster benützen. Die tatsächlichen Funktionen ersetzt du dann eben (z.B. durch boost::thread-Aufrufe).</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269242</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:42:46 GMT</pubDate></item></channel></rss>