<?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[Timer mehrfach ausführen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne ein Programm mit Hilfe eines Timers mehrfach hinter einander ausführen, allerdings klappt das nicht so wie ich gerne möchte und es wird bei mir immer die letzte Funktion ausgeführt.</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; 10; i++) {
  for (int j = 0; j &lt; 5; j++){
    Funktion(i,j);
  }
}
</code></pre>
<p>Ich möchte das Programm mit unterschiedlichen Parameter (i und j) hintereinander aufrufen.<br />
In der Funktion lösche ich den ev. vorhandenen Timer zuerst und setze ihn dann neu:</p>
<pre><code class="language-cpp">void Funktion(int i, int j) {
  KillTimer(ID);
  // mache irgendwas mit i und j
  SetTimer(ID, MS, NULL);
}
</code></pre>
<pre><code class="language-cpp">void OnTimer(UINT nIDPackage) {
  // Programm ausführen
  // Dauer bekannt
}
</code></pre>
<p>Das Problem: <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 />
Die beiden for-Schleifen werden abgearbeitet, der Timer i*j oft gesetzt und für i = 9 und j = 4 wird dann OnTimer aufgerufen.<br />
Für die letzte Iteration stimmt der Ablauf, allerdings soll OnTimer für jede Iteration für eine bestimmte Dauer aufgerufen werden, wie kann man das machen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171769/timer-mehrfach-ausführen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 12:43:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171769.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Jan 2007 09:53:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Timer mehrfach ausführen on Mon, 29 Jan 2007 09:53:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne ein Programm mit Hilfe eines Timers mehrfach hinter einander ausführen, allerdings klappt das nicht so wie ich gerne möchte und es wird bei mir immer die letzte Funktion ausgeführt.</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; 10; i++) {
  for (int j = 0; j &lt; 5; j++){
    Funktion(i,j);
  }
}
</code></pre>
<p>Ich möchte das Programm mit unterschiedlichen Parameter (i und j) hintereinander aufrufen.<br />
In der Funktion lösche ich den ev. vorhandenen Timer zuerst und setze ihn dann neu:</p>
<pre><code class="language-cpp">void Funktion(int i, int j) {
  KillTimer(ID);
  // mache irgendwas mit i und j
  SetTimer(ID, MS, NULL);
}
</code></pre>
<pre><code class="language-cpp">void OnTimer(UINT nIDPackage) {
  // Programm ausführen
  // Dauer bekannt
}
</code></pre>
<p>Das Problem: <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 />
Die beiden for-Schleifen werden abgearbeitet, der Timer i*j oft gesetzt und für i = 9 und j = 4 wird dann OnTimer aufgerufen.<br />
Für die letzte Iteration stimmt der Ablauf, allerdings soll OnTimer für jede Iteration für eine bestimmte Dauer aufgerufen werden, wie kann man das machen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219037</guid><dc:creator><![CDATA[Lara*]]></dc:creator><pubDate>Mon, 29 Jan 2007 09:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mehrfach ausführen on Mon, 29 Jan 2007 10:01:07 GMT]]></title><description><![CDATA[<p>Die for()-Schleife wird viel zu schnell für deine Zwecke durchlaufen, dadurch killst du alle vorigen Timer wieder, bevor sie aktiviert werden. Wenn du in jedem Durchlauf einen Timer starten willst (Randfrage: Wozu soll das gut sein?), benötigst du auch i*j Timer, die du später auch wieder auseinanderhalten kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219043</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 29 Jan 2007 10:01:07 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mehrfach ausführen on Mon, 29 Jan 2007 11:12:02 GMT]]></title><description><![CDATA[<p>es ist so: ich habe ein Programm, dass alle X MS etwas ausführt. Ich möchte nun das Programm automatisieren und das Programm x-mal hintereinander ausführt. Dazu hätte ich die beiden for Schleifen gemacht.</p>
<p>Du hast geschrieben dass ich dann i*j Timer benötige. Ich möchte aber alle Timer hintereinander ausführen. wenn der erste beendet ist, dann startet der Zweite, wenn fertig, dann der dritte und so....</p>
<p>Hast du eine Idee wie das funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219083</guid><dc:creator><![CDATA[Lara*]]></dc:creator><pubDate>Mon, 29 Jan 2007 11:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mehrfach ausführen on Mon, 29 Jan 2007 11:20:23 GMT]]></title><description><![CDATA[<p>In dem Fall ist vielleicht der Timer der falsche Ansatz - du benötigst eher Sleep(), um zwischen den einzelnen Aufrufen etwas warten zu können.</p>
<p>oder du verwendest nur einen Timer, der einmal gestartet wird in der OnTimer()-Funktion i und j weiterzählt:</p>
<pre><code class="language-cpp">void OnTimer(UINT nID)
{
  ++i;
  if(i==i_max){i=0;++j;}
  if(j==j_max){KillTimer(nID);return;}

  // mach was mit i und j
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1219091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219091</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 29 Jan 2007 11:20:23 GMT</pubDate></item></channel></rss>