Zeit



  • Hallo erst ma, ich habe folgendes Problem: Ich weiß nicht wie ich meine beiden Timer im nachfolgenden Programm so hinbekomme das erst "Ich sag mal Hallo" dasteht und ne Sekunde später "Ich sag mal Tschüss". Bei mir kommen immer beide gleichzeitig aber das liegt eben auch daran das ich Sie gleichzeitig Starte. Also nun ist die Frage wann ich Timer2, wie starten muss. Ich habe mir erst so gedacht das ich noch auf ein bestimmtes Event warten muss wie etwa das Ende von Timer1 nur ich weiß nicht woher ich das nehmen soll!!

    Also hier erst mal der Quellcode:

    using System;
    using System.Timers;
    
    namespace Zeit
    {
    	class Zeitgeber
    	{		
    
    		public static void Main()
    	    {
    		Timer Timer1 = new Timer();
    	    Timer1.Interval = 1000;
    		Timer1.Elapsed += new ElapsedEventHandler(Antwortfunktionen.HalloSagen);
    
    		Timer Timer2 = new Timer();
    		Timer2.Interval = 1000;
    		Timer2.Elapsed += new ElapsedEventHandler(Antwortfunktionen.IchSageTschüss);
    
    		Timer1.Start();
    		Timer2.Start();
    
    		while(Console.Read() != 'e')
    		 ;
    
    		Timer1.Stop();
    		Timer2.Stop();
    		}
    
    	}
    
    	class Antwortfunktionen
    	{
    		public static void HalloSagen(object quelle, ElapsedEventArgs arg)
    		{
    			Console.WriteLine("Ich sag mal Hallo");
    		}
    
    		public static void IchSageTschüss(object quelle, ElapsedEventArgs arg)
    		{
    			Console.WriteLine("Ich sage Tschüss");
    		}
    	}
    }
    

    Ich danke schon mal im Voraus für die (bestimmmt sehr simple) Lösung

    MfG

    Kapp.Sparda



  • Ich verstehe gar nicht, warum du das so kompliziert machst... Die Textausgaben sollen also den Abstand von einer Sekunde haben. Das waere dann doch einfac:

    .
    .
    .
    public static void Main()
    {
        Console.WriteLine("Ich sag mal Hallo");
    
        Timer Timer1 = new Timer();
        Timer1.Interval = 1000;
        Timer1.Elapsed += new ElapsedEventHandler(Probe.IchSageTschüss);
    .
    .
    .
    

    Wenn du dann noch eine weitere Ausgabe hast, musst du den Timer dazu natuerlich in diesem ElapsedEventhandler starten. 🤡



  • Na ja klar kann es so einfach sein, es ist aber eine Übung für spätere Aufgaben, ich will dann ganz bestimmte Funktionen immer sekündlich und im wechsel aufrufen.
    Das soll eine Art synchronisation werden...



  • starte den timer 2 im timer 1 Tick und es läuft.


Anmelden zum Antworten