Verwenden Sie ein System.Timers.Timer
und berechnen Sie beim Programmstart einfach die Differenz zwischen DateTime.Now
und DateTime.Today.AddDays(0)
. Stellen Sie dann das Intervall für diesen Betrag ein.
Ich habe gerade kürzlich so etwas gemacht:
%Vor%UND:
%Vor% Verwendung: DayChangedNotified.DayChanged += ....
Ich habe keine Ahnung, warum Polling-Lösungen gewählt wurden, als Microsoft vor Jahren dieses Problem löste, indem es einen Windows-Dienst hinzufügte, um das Timing zu handhaben. Erstellen Sie einfach eine geplante Aufgabe, um die exe auszuführen. Kein zusätzlicher Aufwand.
Ich bin ein wenig verwirrt darüber, warum Sie ein WinForm brauchen, wird es um Mitternacht laufen? Wenn Sie nur einen Sortiervorgang ausführen müssen, verwenden Sie den Windows-Scheduler, um ihn um Mitternacht auszuführen. (Auf XP, aber ich glaube Win Server sollte ähnlich sein) Systemsteuerung - & gt; Geplante Aufgaben - & gt; Geplante Aufgabe hinzufügen - & gt; Füllen Sie den Assistenten aus. Sparen Sie viel Code.
Tags und Links c# winforms backgroundworker