Timer zurücksetzen in C#
In diesem Artikel wird das Zurücksetzen eines Timers mit der Programmiersprache C# erläutert.
System.Timer
-Klasse in C#
Diese System.Timer
-Klasse in C# bietet einen Mechanismus zum Ausführen eines Codeblocks, wenn eine bestimmte Zeit verstrichen ist, und dieser Code kann mehrmals ausgeführt werden.
Verwenden Sie Timer.AutoReset
zum Zurücksetzen des Timers in C#
Wenn das Intervall
des Timers abgelaufen ist, ermöglicht AutoReset
ihm, sich selbst zurückzusetzen und wieder bei 0
zu zählen. Der Countdown beginnt, wenn die Eigenschaft enabled auf true
gesetzt ist, aber wenn diese auf false
gesetzt ist, muss der Timer neu gestartet werden, indem die Methode Start()
aufgerufen wird.
Wenn die Zeitgeberfunktion des Programms abgeschlossen ist, sollte das Programm beendet und seine Ressourcen zur Verwendung in anderen Zusammenhängen verfügbar gemacht werden. Anders ausgedrückt, der Timer.AutoReset
liest oder schreibt auf einen booleschen Wert, der angibt, ob der Timer das Elapsed
-Event nur einmal false
oder mehrmals true
auslösen soll.
Die Syntax des AutoReset
-Ereignisses ist unten.
public bool AutoReset { get; set; }
Diese Art von Ereignis kann für verschiedene Zwecke verwendet werden, eignet sich jedoch besonders gut für die Verwendung in Webanwendungen, um den Status einer Verbindung zu ermitteln. Eine Stoppuhr zur Verwendung während eines Videospiels ist eine weitere mögliche Verwendung.
Das folgende Beispiel zeigt, wie ein Timer
mit einem Elapsed-Ereignis konstruiert wird, das ausgelöst wird, wenn 2 Sekunden
vergangen sind. Die Konsole wird dann mit dem "My name is DelftStack"
als Ausgabe des zugehörigen Eventhandlers angezeigt.
-
Zunächst müssen wir die folgenden Bibliotheken importieren.
using System; using System.Timers;
-
Die Deklaration der Timer-Variablen, die wir als
t
bezeichnen, innerhalb derShanitimer
-Klasse stellt sicher, dass sie für alle Methoden verfügbar ist.private static System.Timers.Timer t;
-
Wir richten einen Timer ein, indem wir den eingebauten Klassen folgen.
AutoReset
-Timer wird zurückgesetzt und beginnt eine neue Zählung, sobald ein Intervall abgelaufen ist. Ist dieser auffalse
gesetzt, muss der Timer zurückgesetzt werden.2000
ist das Zeitintervall, das sich unter Umständen ändern kann. Sie können inMillisekunden
angeben, wie lange Sie nach dem Einstellen desInterval
-Parameters warten möchten, bevor Sie den benötigten Code ausführen.
t.AutoReset = true; t.Enabled = true; t.Interval = 2000; t.Elapsed += ontime;
- Das Attribut
Elapsed
gibt die Funktion an, die nach der Zeit ausgeführt werden soll. Das Definieren eines Event-Handlers in C# kann mit dem+=
, wie ich es getan habe, schneller durchgeführt werden, und es weist den Timer an, den Event-Handler zu abonnieren.
-
Wir haben auch einige Warnmeldungen auf der Konsole angezeigt.
Console.WriteLine(" Waiting for Command "); Console.WriteLine(" Click on Enter Button to Exit Console "); Console.ReadLine();
-
Stoppen Sie den Timer mit der Funktion
Stop()
. Die FunktionDispose()
sollte verwendet werden, um alle verbrauchten Ressourcen freizugeben, nachdem der Timer abgelaufen ist.t.Stop(); t.Dispose();
-
Die Argumente
Object
undSystem.Timers.ElapsedEventArgs
sind für die Methodeontime()
erforderlich.private static void ontime(Object source, System.Timers.ElapsedEventArgs s) { Console.WriteLine(" My name is DelftStack "); }
Vollständiger Quellcode:
using System;
using System.Timers;
class Shanitimer {
private static System.Timers.Timer t;
static void Main() {
t = new System.Timers.Timer();
t.AutoReset = true;
t.Enabled = true;
t.Elapsed += ontime;
t.Interval = 2000;
Console.WriteLine(" Waiting for Command ");
Console.WriteLine(" Click on Enter Button to Exit Console ");
Console.ReadLine();
t.Stop();
t.Dispose();
}
private static void ontime(Object source, System.Timers.ElapsedEventArgs s) {
Console.WriteLine(" My name is DelftStack ");
}
}
Ausgabe:
Waiting for Command
Click on Enter Button to Exit Console
My name is DelftStack
My name is DelftStack
//After this line, I pressed enter
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn