muss es immer Timer sein?

    • Allgemein

    Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

      muss es immer Timer sein?

      Welchen Grund kann es geben, eines der Timer-Objekte einzusetzen?
      Das Timer-Objekt (eines der vielen) wird dann eingesetzt, wenn ein Vorgang periodisch abgearbeitet werden soll. Hierzu wird die Interval-Eigenschaft gesetzt, und der Timer gestartet.

      Wann wird der Timer NICHT verwendet?
      Der eigentliche Grund dieses Threads: Immer wieder stoßen hier die Anfänger auf diese einfache Möglichkeit.
      Aber: Der Timer wird nicht verwendet, um Änderungen an Eigenschaften zu überwachen, die uns das überwachte Objekt selbst mitteilen kann.

      FALSCH: Du siehst alle 5 Sekunden (oder gar Millisekunden) nach, ob das Mikrowellenpopcorn schon fertig ist.
      RICHTIG: Du wartest auf das Klingelsymbol deiner Mikrowelle.

      FALSCH: Du schielst im Halbschlaf regelmäßig auf die Uhr, um zu sehen, ob du schon aufstehen musst.
      RICHTIG: Schlafe weiter, Mama (oder: der Wecker) weckt dich schon.

      FALSCH: Der Lehrer fragt alphabetisch jeden Schüler ab, ob er/sie die richtige Antwort auf seine gestellte Frage hat
      RICHTIG: Du signalisierst mit Handzeichen, dass du was zu sagen hast.

      FALSCH: Du siehst jede Sekunde nach, ob die Text-Eigenschaft deiner Textbox geändert wurde.
      RICHTIG: Du fängst das TextChanged-Event ab, und sagst dort, was passieren soll.

      Nur, um es klarzustellen: Es funktionieren beide Varianten. Für die FALSCH-Varianten ist jedoch immer ein erheblicher Mehraufwand vorhanden.
      (Alle 5 Sekunden aufstehen, in die Küche eilen, in die Mikrowelle schauen, wieder zurück ins Wohnzimmer spurten, auf die Couch hüpfen, ... und wieder los)
      Im Normalfall ist immer ein entsprechendes Event vorhanden, welches du überwachen/worauf du reagieren kannst. Und wenn du korrekt objektorientiert programmierst (-> OOP), dann erstellst du Objekte, die dich informieren, falls sich etwas ereignet hat.

      Hier gilt: No TIMER needed!
      Jeder der mit WPF arbeitet sollte sich zu dem Thema mal das INotifyPropertyChanged Interface angucken. Ist vorallem wenn man mit Databinding arbeitet sehr wichtig. Dieses bietet ein Event "PropertyChanged" welches beim ändern von werten gefeuert werden kann. Diesem wird dann der Name der geänderten Eigenschaft übergeben und WPF kann dann auf die Änderung reagieren und die in der UI dargestellten werte Update.