Restablecer temporizador en C#

Muhammad Zeeshan 12 octubre 2023
  1. Clase System.Timer en C#
  2. Utilice Timer.AutoReset para restablecer el temporizador en C#
Restablecer temporizador en C#

Este artículo discutirá cómo restablecer un temporizador usando el lenguaje de programación C#.

Clase System.Timer en C#

Esta clase System.Timer en C# proporciona un mecanismo para ejecutar un bloque de código cuando ha pasado una cierta cantidad de tiempo, y este código puede ejecutarse varias veces.

Utilice Timer.AutoReset para restablecer el temporizador en C#

Cuando el intervalo del temporizador ha terminado, AutoReset permite que se reinicie y comience a contar de nuevo desde 0. La cuenta regresiva comenzará si la propiedad habilitada se establece en true, pero si se establece en false, será necesario reiniciar el temporizador realizando una llamada al método Start().

Cuando la función de temporizador del programa se ha completado, el programa debe terminarse y sus recursos deben estar disponibles para su uso en otros contextos. Dicho de otro modo, el Timer.AutoReset lee o escribe en un valor booleano que indica si el temporizador debe generar el evento Elapsed solo una vez false o varias veces true.

La sintaxis del evento AutoReset se encuentra a continuación.

public bool AutoReset { get; set; }

Este tipo de evento se puede usar para varias cosas, pero es particularmente adecuado para su uso en aplicaciones web para determinar el estado de una conexión. Un cronómetro para usar durante un videojuego es otro uso potencial.

El siguiente ejemplo demuestra cómo construir un Timer con un evento Transcurrido que se activa cuando han pasado 2 segundos. A continuación, la consola se muestra con "My name is DelftStack" como salida del controlador de eventos asociado.

  1. Para comenzar, debemos importar las siguientes bibliotecas.

    using System;
    using System.Timers;
    
  2. Declarar la variable timer, a la que nos referiremos como t, dentro de la clase Shanitimer asegura que estará disponible para todos los métodos.

    private static System.Timers.Timer t;
    
  3. Configuraremos un temporizador siguiendo las clases integradas.

    • El temporizador AutoReset se pone a cero y comienza una nueva cuenta una vez transcurrido un intervalo. El temporizador debe reiniciarse si está configurado en false.
    • 2000 es el intervalo de tiempo que puede verse alterado según las circunstancias. Puede especificar en milisegundos cuánto tiempo después de configurar el parámetro Intervalo desea esperar antes de ejecutar el código necesario.
    t.AutoReset = true;
    t.Enabled = true;
    t.Interval = 2000;
    t.Elapsed += ontime;
    
    • El atributo Elapsed especifica la función que se ejecutará después del tiempo. La definición de un controlador de eventos en C# puede lograrse más rápidamente usando el +=, como hice yo, e indica al temporizador que se suscriba al controlador de eventos.
  4. También mostramos algunos mensajes de alerta en la consola.

    Console.WriteLine(" Waiting for Command ");
    Console.WriteLine(" Click on Enter Button to Exit Console ");
    Console.ReadLine();
    
  5. Detenga el temporizador con la función Stop(). La función Dispose() debe usarse para liberar cualquier recurso que haya consumido después de que el temporizador haya terminado de ejecutarse.

    t.Stop();
    t.Dispose();
    
  6. Los argumentos Object y System.Timers.ElapsedEventArgs son necesarios para el método ontime().

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

Código fuente completo:

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

Producción :

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

Artículo relacionado - Csharp Timer