.NET Zeitverwaltung

Railer

Mitglied
Hallo!

Ich habe eine ganz einfache Frage. Ich muss ein Programm mit einer integrierten Zeitverwaltung zum Steuern bestimmter Ereignisse schreiben. D.h. Es findet ein Ereigniss stat (genau genommen es wird ein Datenexport durchgeführt) und der Benutzer muss den Zeitpunkt bestimmen können: z.B. wöchentlich, jeden Montag, um 12.00 Uhr oder so ähnlich.

Frage: Wie kann ich feststellen, wann der Zeitpunkt zum Auslösen des Ereignisses eingetretten ist? Ich glaube es wäre ziemlich daneben, wenn ich jetzt in einer endlosschleife überprüfe ob der Zeitpunkt eingetretten ist. Das wäre eine Ressourcenverschwendung, wor allem wenn das Ereignis nur ein mal im Monat auftretten soll. Geht bestimmt einfacher oder (wenn man nur weiss wie)?
 
Hi,

Ich hatte auch schon mal so was geschrieben und hab es so gelöst, dass ich mir den neuen Zeitpunt berechnet hab und dann im Tick-Event des Timers geprüft hab, ob der aktuelle dem Berechneten Zeitpunt entspricht. Ist zwar auch nicht grad die beste Lösung, aber auf jeden Fall resourcenschonender als eine Schleife, die ja kontinuierlich Porzessorlast erzeugen würde.
Den Interval des Timers könnte man sogar noch dynamisch setzen. Je näher du an den neuen Zeitpunkt ran kommst, um so kleiner wird der Interval.
 
danke für den Tip. Es ist mit sicherheit ne bessere Lösung, aber immer noch nicht schön, vor allem wenn ich jetzt anfange Zeitintervalle dynamisch zu steuern für so ne Kleinigkeit. Gibt es denn nichts fertiges in der Richtung, was mir direkt einen Event auslöst, sobald der Zeitpunkt erreicht ist? Das muss es doch bestimmt geben?

Ich hab hier noch eine komische Idee: wie wär's wenn man den Zeitpunkt ausrechnet und den Thread bis dahin einfach schlafen lässt z.b. für 86400000 ms, das wären dann 24 std. Ich weiss aber nicht ob das ne gute Idee ist. Verbraucht so ein schlafender Thread Ressourcen? Wenn der Thread tatsächlich stillgelegt wird, dann wäre es ne einfache Sache, ohne Schleifen, ohne Timer usw.
 
Zuletzt bearbeitet:
Also wenn du nur etwas anstarten willst, dann kannst du ja das Tool verwenden, welches bei Windows dabei ist. Einfach deine Anwendung (die beispielsweise den Export durchführt) dort eintragen und die entsprechenden Zeitinformationen und fertig.
 

Neue Beiträge

Zurück