Temporizadores

Actualización: noviembre 2007

Los temporizadores son objetos pequeños que permiten especificar un delegado para llamarlo en un momento específico. Un subproceso del grupo realiza la operación de espera.

El uso de la clase Timer es sencillo. Para crear un Timer, debe pasar un delegado TimerCallback al método de devolución de llamada, un objeto que representa el estado que se pasará a la devolución de llamada, la hora de compilación inicial y una cifra que representa el período entre invocaciones de devolución de llamada. Para cancelar un temporizador pendiente, se debe llamar a la función Timer.Dispose.

Nota:

Hay otras dos clases de temporizador. La clase System.Windows.Forms.Timer es un control que funciona con diseñadores visuales y está pensado para su uso en contextos de interfaz de usuario; provoca eventos en el subproceso de interfaz de usuario. La clase System.Timers.Timer deriva de Component, por lo que puede usarse con diseñadores visuales; también provoca eventos, pero lo hace en un subproceso ThreadPool. La clase System.Threading.Timer realiza las devoluciones de llamada en un subproceso ThreadPool y no utiliza el modelo de evento para nada. También proporciona un objeto de estado al método de devolución de llamada, lo que no hacen otros temporizadores. Es sumamente ligero.

El ejemplo de código siguiente inicia un temporizador que se inicia después de un segundo (1000 milisegundos) y emite un chasquido por segundo hasta que presione la tecla Entrar. La variable que contiene la referencia al temporizador es un campo de nivel de clase para garantizar que el temporizador no está sujeto a la recolección de elementos no utilizados mientras que todavía está en ejecución. Para obtener más información acerca de la recolección agresiva de elementos no utilizados, vea KeepAlive.

Imports System
Imports System.Threading

Public Class Example
   
   Private Shared ticker As Timer
   
   Public Shared Sub TimerMethod(state As Object)
      Console.Write(".")
   End Sub
   
   Public Shared Sub Main()
      ticker = New Timer(AddressOf TimerMethod, Nothing, 1000, 1000)

      Console.WriteLine("Press the Enter key to end the program.")
      Console.ReadLine()
   End Sub 
End Class
using System;
using System.Threading;

public class Example
{   
   private static Timer ticker;
   
   public static void TimerMethod(Object state)
   {
      Console.Write(".");
   }
   
   public static void Main()
   {
      ticker = new Timer(TimerMethod, null, 1000, 1000);

      Console.WriteLine("Press the Enter key to end the program.");
      Console.ReadLine();
   } 
}

Vea también

Referencia

Timer

Otros recursos

Objetos y características de subprocesos