Compartir vía


Timer Clase

Definición

Implementa un temporizador que genera un evento a intervalos definidos por el usuario. Este temporizador está optimizado para su uso en aplicaciones de Windows Forms y debe usarse en una ventana.

public ref class Timer : System::ComponentModel::Component
public class Timer : System.ComponentModel.Component
type Timer = class
    inherit Component
Public Class Timer
Inherits Component
Herencia

Ejemplos

En el ejemplo siguiente se implementa un temporizador de intervalo simple, que activa una alarma cada cinco segundos. Cuando se produce la alarma, muestra MessageBox un recuento del número de veces que se ha iniciado la alarma y solicita al usuario si el temporizador debe seguir ejecutándose.

public ref class Class1
{
private:
   static System::Windows::Forms::Timer^ myTimer = gcnew System::Windows::Forms::Timer;
   static int alarmCounter = 1;
   static bool exitFlag = false;

   // This is the method to run when the timer is raised.
   static void TimerEventProcessor( Object^ /*myObject*/, EventArgs^ /*myEventArgs*/ )
   {
      myTimer->Stop();
      
      // Displays a message box asking whether to continue running the timer.
      if ( MessageBox::Show( "Continue running?", String::Format( "Count is: {0}", alarmCounter ), MessageBoxButtons::YesNo ) == DialogResult::Yes )
      {
         
         // Restarts the timer and increments the counter.
         alarmCounter += 1;
         myTimer->Enabled = true;
      }
      else
      {
         
         // Stops the timer.
         exitFlag = true;
      }
   }


public:
   static void Main()
   {
      
      /* Adds the event and the event handler for the method that will 
                process the timer event to the timer. */
      myTimer->Tick += gcnew EventHandler( TimerEventProcessor );
      
      // Sets the timer interval to 5 seconds.
      myTimer->Interval = 5000;
      myTimer->Start();
      
      // Runs the timer, and raises the event.
      while ( !exitFlag )
      {
         
         // Processes all the events in the queue.
         Application::DoEvents();
      }
   }

};

int main()
{
   Class1::Main();
}
public class Class1 {
    static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
    static int alarmCounter = 1;
    static bool exitFlag = false;
 
    // This is the method to run when the timer is raised.
    private static void TimerEventProcessor(Object myObject,
                                            EventArgs myEventArgs) {
       myTimer.Stop();
 
       // Displays a message box asking whether to continue running the timer.
       if(MessageBox.Show("Continue running?", "Count is: " + alarmCounter, 
          MessageBoxButtons.YesNo) == DialogResult.Yes) {
          // Restarts the timer and increments the counter.
          alarmCounter +=1;
          myTimer.Enabled = true;
       }
       else {
          // Stops the timer.
          exitFlag = true;
       }
    }
 
    public static int Main() {
       /* Adds the event and the event handler for the method that will 
          process the timer event to the timer. */
       myTimer.Tick += new EventHandler(TimerEventProcessor);
 
       // Sets the timer interval to 5 seconds.
       myTimer.Interval = 5000;
       myTimer.Start();
 
       // Runs the timer, and raises the event.
       while(!exitFlag) {
          // Processes all the events in the queue.
          Application.DoEvents();
       }
    return 0;
    }
 }
Public Class Class1
    Private Shared WithEvents myTimer As New System.Windows.Forms.Timer()
    Private Shared alarmCounter As Integer = 1
    Private Shared exitFlag As Boolean = False    
    
    ' This is the method to run when the timer is raised.
    Private Shared Sub TimerEventProcessor(myObject As Object, _
                                           ByVal myEventArgs As EventArgs) _
                                       Handles myTimer.Tick
        myTimer.Stop()
        
        ' Displays a message box asking whether to continue running the timer.
        If MessageBox.Show("Continue running?", "Count is: " & alarmCounter, _
                            MessageBoxButtons.YesNo) = DialogResult.Yes Then
            ' Restarts the timer and increments the counter.
            alarmCounter += 1
            myTimer.Enabled = True
        Else
            ' Stops the timer.
            exitFlag = True
        End If
    End Sub
    
    Public Shared Sub Main()
        ' Adds the event and the event handler for the method that will
        ' process the timer event to the timer.
        
        ' Sets the timer interval to 5 seconds.
        myTimer.Interval = 5000
        myTimer.Start()
        
        ' Runs the timer, and raises the event.
        While exitFlag = False
            ' Processes all the events in the queue.
            Application.DoEvents()
        End While

    End Sub    

End Class

Comentarios

Timer Se usa para generar un evento a intervalos definidos por el usuario. Este temporizador de Windows está diseñado para un entorno de un solo subproceso en el que se usan subprocesos de interfaz de usuario para realizar el procesamiento. Requiere que el código de usuario tenga disponible una bomba de mensajes de interfaz de usuario y funcione siempre desde el mismo subproceso, o serializar la llamada a otro subproceso.

Cuando use este temporizador, use el Tick evento para realizar una operación de sondeo o para mostrar una pantalla de presentación durante un período de tiempo especificado. Cada vez que la Enabled propiedad se establece true en y la Interval propiedad es mayor que cero, el Tick evento se genera a intervalos en función del valor de la Interval propiedad.

Esta clase proporciona métodos para establecer el intervalo y para iniciar y detener el temporizador.

Nota:

El componente Temporizador de Formularios Windows Forms es de un solo subproceso y está limitado a una precisión de 55 milisegundos. Si necesita un temporizador multiproceso con mayor precisión, use la Timer clase en el System.Timers espacio de nombres .

Constructores

Nombre Description
Timer()

Inicializa una nueva instancia de la clase Timer.

Timer(IContainer)

Inicializa una nueva instancia de la Timer clase junto con el contenedor especificado.

Propiedades

Nombre Description
CanRaiseEvents

Obtiene un valor que indica si el componente puede generar un evento.

(Heredado de Component)
Container

Obtiene el IContainer objeto que contiene el Componentobjeto .

(Heredado de Component)
DesignMode

Obtiene un valor que indica si Component el objeto está actualmente en modo de diseño.

(Heredado de Component)
Enabled

Obtiene o establece si el temporizador se está ejecutando.

Events

Obtiene la lista de controladores de eventos que están asociados a este Componentobjeto .

(Heredado de Component)
Interval

Obtiene o establece la hora, en milisegundos, antes de que se genere el Tick evento en relación con la última aparición del Tick evento.

Site

Obtiene o establece el ISite del Component.

(Heredado de Component)
Tag

Obtiene o establece una cadena arbitraria que representa algún tipo de estado de usuario.

Métodos

Nombre Description
CreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos usados por .Component

(Heredado de Component)
Dispose(Boolean)

Elimina los recursos, distintos de la memoria, utilizados por el temporizador.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetService(Type)

Devuelve un objeto que representa un servicio proporcionado por Component o por su Container.

(Heredado de Component)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto actual MarshalByRefObject .

(Heredado de MarshalByRefObject)
OnTick(EventArgs)

Genera el evento Tick.

Start()

Inicia el temporizador.

Stop()

Detiene el temporizador.

ToString()

Devuelve una cadena que representa .Timer

Eventos

Nombre Description
Disposed

Se produce cuando el componente se elimina mediante una llamada al Dispose() método .

(Heredado de Component)
Tick

Se produce cuando ha transcurrido el intervalo de temporizador especificado y el temporizador está habilitado.

Se aplica a