Timer ausführen, wenn direkt nach dem Start?

8

Ich habe einen Timer mit Intervall 3600000, der in eine Stunde übersetzt werden kann, also wenn ich das tue

%Vor%

es wird den Code unten in jeder Stunde ab der nächsten Stunde ausführen

%Vor%

aber was, wenn ich möchte, dass es auch in der Sekunde ausgeführt wird, rufe ich timer.Start () und dann jede Stunde danach?

    
Hendra Anggrian 24.06.2013, 19:46
quelle

3 Antworten

10

Die einfachste Option wäre, einfach die Methode aufzurufen:

%Vor%

Dies löst nicht wirklich den Timer aus, sondern ruft Ihren Handler sofort auf und simuliert effektiv ein "jetzt" -Ereignis.

    
Reed Copsey 24.06.2013, 19:47
quelle
1

Wie ich verstehe, macht System.Threading.Timer genau das, was Sie wollen.

Sie können angeben, wann der erste Aufruf stattfinden soll und dann das Intervall zwischen den Aufrufen.

Wenn Sie also den ersten Aufruf auf 0 Millisekunden und das Intervall auf eine Stunde setzen, wird er sofort und dann jede Stunde ausgelöst.

  

dueTime   Typ: System.Int32 Die Zeitspanne bis zum Rückruf   wird in Millisekunden aufgerufen. Geben Sie Timeout.Infinite an, um das zu verhindern   Timer vom Start. Geben Sie null (0) an, um den Timer sofort zu starten.

     

period Typ: System.Int32 Das Zeitintervall zwischen den Aufrufen von   Rückruf in Millisekunden. Geben Sie Timeout.Infinite zum Deaktivieren an   periodische Signalisierung.

    
Quinton Bernhardt 24.06.2013 19:52
quelle
0

Einfach würde ich direkt nach dem Aufruf von Start () die Funktion manuell aufrufen.

    
iefpw 24.06.2013 19:47
quelle

Tags und Links