Réinitialiser la minuterie en C#

Muhammad Zeeshan 12 octobre 2023
  1. Classe System.Timer en C#
  2. Utilisez Timer.AutoReset pour réinitialiser la minuterie en C#
Réinitialiser la minuterie en C#

Cet article traite de la réinitialisation d’une minuterie à l’aide du langage de programmation C#.

Classe System.Timer en C#

Cette classe System.Timer en C# fournit un mécanisme pour exécuter un bloc de code lorsqu’un certain laps de temps s’est écoulé, et ce code peut être exécuté plusieurs fois.

Utilisez Timer.AutoReset pour réinitialiser la minuterie en C#

Lorsque l'intervalle du chronomètre est terminé, AutoReset lui permet de se réinitialiser et de recommencer à compter à partir de 0. Le compte à rebours commencera si la propriété enabled est définie sur true, mais si celle-ci est définie sur false, le minuteur devra être redémarré en appelant la méthode Start().

Lorsque la fonction de minuterie du programme est terminée, le programme doit être terminé et ses ressources rendues disponibles pour une utilisation dans d’autres contextes. Autrement dit, le Timer.AutoReset lit ou écrit dans une valeur booléenne qui indique si le minuteur doit déclencher l’événement Elapsed une seule fois false ou plusieurs fois true.

La syntaxe de l’événement AutoReset est ci-dessous.

public bool AutoReset { get; set; }

Ce type d’événement peut être utilisé pour diverses choses, mais il est particulièrement bien adapté à une utilisation dans des applications Web pour déterminer l’état d’une connexion. Un chronomètre à utiliser pendant un jeu vidéo est encore une autre utilisation potentielle.

L’exemple suivant montre comment construire un Timer avec un événement Elapsed qui se déclenche lorsque 2 secondes se sont écoulées. La console est alors affichée avec le "My name is DelftStack" comme sortie du gestionnaire d’événements associé.

  1. Pour commencer, nous devons importer les bibliothèques suivantes.

    using System;
    using System.Timers;
    
  2. La déclaration de la variable timer, que nous appellerons t, à l’intérieur de la classe Shanitimer garantit qu’elle sera disponible pour toutes les méthodes.

    private static System.Timers.Timer t;
    
  3. Nous allons configurer une minuterie en suivant les classes intégrées.

    • La minuterie AutoReset se réinitialise et commence un nouveau comptage une fois qu’un intervalle s’est écoulé. Le temporisateur doit être réinitialisé s’il est réglé sur false.
    • 2000 est l’intervalle de temps qui peut être modifié selon les circonstances. Vous pouvez spécifier en millisecondes combien de temps après avoir défini le paramètre Interval vous voulez attendre avant d’exécuter le code nécessaire.
    t.AutoReset = true;
    t.Enabled = true;
    t.Interval = 2000;
    t.Elapsed += ontime;
    
    • L’attribut Elapsed spécifie la fonction à exécuter après le temps. La définition d’un gestionnaire d’événements en C# peut être accomplie plus rapidement en utilisant le +=, comme je l’ai fait, et il demande au minuteur de s’abonner au gestionnaire d’événements.
  4. Nous avons également affiché quelques messages d’alerte sur la console.

    Console.WriteLine(" Waiting for Command ");
    Console.WriteLine(" Click on Enter Button to Exit Console ");
    Console.ReadLine();
    
  5. Arrêtez le chronomètre à l’aide de la fonction Stop(). La fonction Dispose() doit être utilisée pour libérer toutes les ressources qu’elle a consommées après la fin de l’exécution de la minuterie.

    t.Stop();
    t.Dispose();
    
  6. Les arguments Object et System.Timers.ElapsedEventArgs s sont requis pour la méthode ontime().

    private static void ontime(Object source, System.Timers.ElapsedEventArgs s) {
      Console.WriteLine(" My name is DelftStack ");
    }
    

Code source complet :

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 ");
  }
}

Production:

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

Article connexe - Csharp Timer