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.
-
Para comenzar, debemos importar las siguientes bibliotecas.
using System; using System.Timers;
-
Declarar la variable timer, a la que nos referiremos como
t
, dentro de la claseShanitimer
asegura que estará disponible para todos los métodos.private static System.Timers.Timer t;
-
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 enfalse
. 2000
es el intervalo de tiempo que puede verse alterado según las circunstancias. Puede especificar enmilisegundos
cuánto tiempo después de configurar el parámetroIntervalo
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.
- El temporizador
-
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();
-
Detenga el temporizador con la función
Stop()
. La funciónDispose()
debe usarse para liberar cualquier recurso que haya consumido después de que el temporizador haya terminado de ejecutarse.t.Stop(); t.Dispose();
-
Los argumentos
Object
ySystem.Timers.ElapsedEventArgs
son necesarios para el métodoontime()
.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
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