Announcement

Collapse
No announcement yet.

Timer wird langsamer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Timer wird langsamer

    Hallo ich habe ein Problem mit einem Timer. Bei der Initialisierung beträgt das Intervall 30 Sekunden. Nach länger Laufzeit, also mehrere Stunden tritt dann ein Effekt auf den ich mir nicht erklären kann. Obwohl ich das Intervall des Timers nicht verändert habe, wird die Zeit zwischen den geworfenen Events immer größer. Nach 24 Stunden beträgt dann die Zeit dazwischen oft sogar ein vielfaches des eingestellten Intervalls.

    Bei dem Timer handelt es sich dabei um den Timer aus dem System.Timers.
    Laufen tut das Programm als Windows Dienst auf einem Win XP Rechner.

    Wenn mir irgend jemand erklären kann, wir das geht und was man dagegen machen kann, wäre ich sehr Dankbar.

  • #2
    Hallo,

    wenn bei der Klasse System.Timers.Timer die Eigenschaft SynchronizingObject inialisiert wird (implizit oder explizit), wird die Delegate-Methode des Timers immer dann in einer Warteschleife geparkt, wenn der über SynchronizingObject.Begin.Invoke implizit eingebundene Arbeitsthread auf das Synchronisationsobjekt warten muss. Die Timer-Ereignisse gehen dabei nicht verloren, sondern werden im Worst Case erst zu einem späteren Zeitpunkt alle zusammen ausgeführt.

    Bei der Klasse System.Threading.Timer gibt es dieses Synchronisationsobjekt nicht.

    Comment

    Working...
    X