Zwei oder mehrere Timer nacheinander ausführen

Hallo Programmierexperten,

wie lassen sich zwei oder mehrere Timer mit unterschiedlicher Dauer hintereinander in Visualbasic 2005 ausführen?

Wenn ich die über

sub form.load…
call zeit1
call zeit2
end sub

und dann in zeit1 bzw. zeit2

sub zeit1…
timer1.interval=1000
timer1.start
end sub

die timer starten möchte, springt mir zeit1 ohne den Sprung in timer1 zurück zur Call-Anweisung.

Wäre schön, wenn mir jemand ein Code-Beispiel posten könnte oder wenigstens einen Hinweis hätte.

Danke für eure Hilfe

Hallo!

Was erwartest Du denn, was passieren soll?

Ohne Deklaration, was timer1 sein soll, nehme ich an, dass es eine Instanz von System.Windows.Forms.Timer ist - das bekommst Du nämlich, wenn Du einfach aus der Toolbox einen Timer auf Dein Form ziehst.

In Deiner Subroutine setzt Du das Intervall auf 1000 ms und startest den Timer.
Daraufhin wird dieser alle Sekunde einmal das Ereignis Tick feuern, aber nachdem Du Dich offenbar nicht dafür interessierst (zumindest ist in Deinem Codefragment nichts entsprechendes zu sehen), passiert halt nix Offensichtliches.

Martin

P.S.: Könnte nicht schaden, wenn Du versuchst, VB.NET auch objektorientiert zu programmieren und nicht so prozedural, wie Du es offenbar bisher gewöhnt bist - dann wirst Du Dich vermutlich auch leichter mit den Antworten tun, die Du hier bekommst. :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen Dank für die Antwort.

Eigentlich geht es darum, dass in einer Textbox nacheinander drei Countdowns laufen sollen. Also nach einem Countdown von 10 auf 0 soll ein weiterer Countdown von z.B. 120 auf 0 und danach wieder einer von 15 auf 0 herunterzählen und in der gleichen Textbox angezeigt werden. Wichtig dabei ist, dass während der Countdowns auch Events abgefragt werden können (z.B. für Unterbrechung oder Pausierung des Countdowns)

Das Prozedurale kommt daher, dass bei den unterschiedlichen Timern auch unterschiedliche Dinge gemacht werden sollen, wie z.B. Änderung der Hintergrundfarbe, ein Kommando an eine Schnittstelle, Laden eines Bildes usw.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi nochmal!
Um es ganz einfach zu machen (KISS Prinzip!) könntest Du einfach einen Timer verwenden, der in gewünschten Intervallen (z.B. 1 sek) feuert.
Im Eventhandler des Tick-Events kannst Du dann die jeweils gewünschte Aktion ausführen, wobei diese Aktion auch das Umschalten zwischen unterschiedlichen Phasen darstellen kann (also zwischen Countdown von Obergrenze 10, 120, … umzuschalten).
Auch wenn Du in den unterschiedlichen Phasen unterschiedliche Intervalle haben willst, kannst Du „im laufenden Betrieb“ auch das Intervall des Timers ändern, so dass Du nur einen Timer brauchst.
Ganz rudimentär also so etwas wie das hier (gegeben sei ein Timer Timer1 und eine TextBox TextBox1:

 Private count As Integer
 Private phase As Integer

 Private Sub Form1\_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 phase = 1
 count = 100

 Timer1.Interval = 100
 Timer1.Start()
 End Sub

 Private Sub Timer1\_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
 count = count - 1
 TextBox1.Text = count.ToString()
 If (count 
Gruß,
Martin