Zeitverzögerte verschachtelte if Abfrage
-
Ich habe ein Programm, welches unterschiedliche Dinge verschachtelt abfragen soll. Die verschachtelungen sollen jeweils per Zeitverzögerung erfolgen. Wie das mit der Zeitverzögerung geht weiß ich bereits, aber nur als Methode mit dem Timer und die Methode kann ich ja nicht in die Methode der if Abfrage rein bauen und ich kann die if Abfrage nicht splitten und System.Threading.Thread(2000); funktioniert nicht.
Deshalb würde ich jetzt versuchen eine Methode für die Timer zu schaffen, in denen etwas passiert, zB. eine Schleife, die die Zeit dann verzögert.
Ich habe mir gedacht sowas über DateTime zu versuchen, weiß aber nicht, ob das Sinn macht, oder ob es eine bessere Lösung gibt.timer1 = new Timer(); timer1.Interval = 2500; timer1.Tick += new EventHandler(timer1_Tick); timer2 = new Timer(); timer2.Interval = 2500; timer2.Tick += new EventHandler(timer2_Tick); timer3 = new Timer(); timer3.Interval = 2500; timer3.Tick += new EventHandler(timer3_Tick); protected void btnButton_Click(object Sender, EventArgs e) { if (a = b) { timer1.Start(); labelCompare1.Text = "a = b"; if (c = d) { timer2.Start(); labelCompare2.Text = "c = d"; if (e = f) { timer3.Start(); labelCompare3.Text = "e = f"; } else ... } else ... } else ... } protected void timer1_Tick(object sender, System.EventArgs e) { DateTime start1 = DateTime.Now; do { ; }while(start.Second == (DateTime.Now.Second + 3)); }
-
benutzer_1234 schrieb:
Deshalb würde ich jetzt versuchen eine Methode für die Timer zu schaffen, in denen etwas passiert, zB. eine Schleife, die die Zeit dann verzögert.
Vergiss', dass es Sleep() gibt. Versuche nicht, eine Verzögerungsschleife zu bauen. Ok?
public partial class MainView : Form { Timer timer1; enum States { State1, State2, State3, End } States myState; public MainView() { InitializeComponent(); myState = States.State1; timer1.Tick += new EventHandler(timer1_Tick); timer1.Interval = 2500; timer1.Start(); } void timer1_Tick(object sender, EventArgs e) { if (myState == States.State1) { Console.WriteLine("Zustand 1"); myState = States.State2; } else if (myState == States.State2) { Console.WriteLine("Zustand 2"); myState = States.State3; } else if (myState == States.State3) { Console.WriteLine("Zustand 3"); myState = States.End; } else if (myState == States.End) { Console.WriteLine("Ende"); timer1.Stop(); } } }
-
In der Zukunft wird blockendes Verhalten noch unerwünschter sein als es jetzt schon ist.
Daher halte ich an den Typ von µ und nutze die Timer.