Feedback

C# - Timer anlegen

Veröffentlicht von am 6/29/2006
(1 Bewertungen)
Timer anlegen
Timer t1 = new Timer(); // Timer anlegen
t1.Interval = 100; // Intervall festlegen, hier 100 ms
t1.Tick+=new EventHandler(t1_Tick); // Eventhandler ezeugen der beim Timerablauf aufgerufen wird
t1.Start(); // Timer starten

void t1_Tick(object sender, EventArgs e)
{
// dieser Code wird ausgeführt, wenn der Timer abgelaufen ist
}
Abgelegt unter Timer.

6 Kommentare zum Snippet

herbivore schrieb am 12/11/2006:
Der Code bezieht sich auf System.Windows.Forms.Timer.

Es gibt auch noch zwei andere Timer-Klassen:
- System.Timers.Timer
- System.Threading.Timer

Wobei für Windows-Forms-Anwendungen der im Snippet verwendete Timer goldrichtig ist.
BlinkyBill schrieb am 10/30/2016:
Wie ist denn der Intervall zu verstehen?
Bedeutet dass der Event alle 100ms aufgerufen wird?

Würde gerne einen Event 30 minuten nach programmstart durchführen. Theoretisch könnte ich den Timer durch den Event auch stoppen, oder?
Koopakiller schrieb am 10/31/2016:
@BlinkyBill
Interval ist die Zeit zwischen den Tick-Events in Millisekunden. Für 30 Minuten müsstest du dort also 30*60*1000 angeben. Weil es besser lesbar ist, behält man hier oftmals die Rechnung dafür im Code.
Sofern du eine andere Timer-Klasse nutzt, die als Interval ein TimeSpan entgegen nimmt, kannst du eine Instanz mit TimeSpan.FromMinutes(30) erzeugen.
BlinkyBill schrieb am 10/31/2016:
@Koopakiller
Super. Vielen Dank.
Da ich keinen Intervall benötige habe ich mir mit einem separaten Thread beholfen der einfach 30 Minuten angehalten wird und danach meine Funktionen auslößt.
Die Formel bzw die Rechnung in den Code zu schreiben ist ein super Tipp. Danke ;)
BlinkyBill schrieb am 11/17/2016:
Nun möchte ich den Timer doch an anderer Stelle einsetzen.
Ich öffne ein Fenster als neuen Thread welches entweder durch drücken eines Buttons oder durch den Timer geschlossen werden soll.
Jedes wird als separater Thrad behandelt, da es mehrere davon gibt.
Da komme ich mit dem Event nicht weit, oder?
In welche Richtung muss ich gehen?
Koopakiller schrieb am 11/18/2016:
Soll jedes Fenster ggf. von einem eigenen Timer geschlossen werden? Wenn ja, dann musst du einfach nur in der Form-Klasse einen Timer platzieren, welcher im Tick-Event die Form schließt.
Sollen dagegen alle Forms gleichzeitig geschlossen werden, so brauchst du nur eine Auflistung aller Forms, welche du im Tick-Event durchläufst und so alle schließt.

Wie das implementiert aussieht hängt stark davon ab, wie es momentan aufgebaut ist.
 

Logge dich ein, um hier zu kommentieren!