Timer zurücksetzen in C#

Muhammad Zeeshan 12 Oktober 2023
  1. System.Timer-Klasse in C#
  2. Verwenden Sie Timer.AutoReset zum Zurücksetzen des Timers in C#
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.

  1. Zunächst müssen wir die folgenden Bibliotheken importieren.

    using System;
    using System.Timers;
    
  2. Die Deklaration der Timer-Variablen, die wir als t bezeichnen, innerhalb der Shanitimer-Klasse stellt sicher, dass sie für alle Methoden verfügbar ist.

    private static System.Timers.Timer t;
    
  3. 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 auf false gesetzt, muss der Timer zurückgesetzt werden.
    • 2000 ist das Zeitintervall, das sich unter Umständen ändern kann. Sie können in Millisekunden angeben, wie lange Sie nach dem Einstellen des Interval-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.
  4. 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();
    
  5. Stoppen Sie den Timer mit der Funktion Stop(). Die Funktion Dispose() sollte verwendet werden, um alle verbrauchten Ressourcen freizugeben, nachdem der Timer abgelaufen ist.

    t.Stop();
    t.Dispose();
    
  6. Die Argumente Object und System.Timers.ElapsedEventArgs sind für die Methode ontime() 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
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

Verwandter Artikel - Csharp Timer