Esta documentación está archivada y no tiene mantenimiento.

Timer.Elapsed (Evento)

Actualización: noviembre 2007

Se produce cuando transcurre el intervalo.

Espacio de nombres:  System.Timers
Ensamblado:  System (en System.dll)

[TimersDescriptionAttribute("TimerIntervalElapsed")]
public event ElapsedEventHandler Elapsed
/** @event */
/** @attribute TimersDescriptionAttribute("TimerIntervalElapsed") */
public void add_Elapsed (ElapsedEventHandler value)
/** @event */
/** @attribute TimersDescriptionAttribute("TimerIntervalElapsed") */
public void remove_Elapsed (ElapsedEventHandler value)

JScript no admite eventos.

Si la propiedad Enabled se establece en true y AutoReset se establece en false, Timer provoca el evento Elapsed sólo una vez, la primera vez que transcurre el intervalo.

Si Interval se establece después de haberse iniciado Timer, se restablecerá el recuento. Por ejemplo, si el intervalo se establece en 5 segundos y, a continuación, Enabled se establece en true, el recuento se inicia en el momento en que se establece Enabled. Si el intervalo vuelve a establecerse en 10 segundos cuando el recuento es de 3 segundos, el evento Elapsed se provoca por primera vez a los 13 segundos de que Enabled se estableciera en true.

El evento Elapsed se provoca en un subproceso de ThreadPool. Si el procesamiento del evento Elapsed dura más que Interval, el evento puede provocarse de nuevo en otro subproceso de ThreadPool. Por lo tanto, el controlador de eventos debe ser de reentrada.

4bz73xt3.alert_note(es-es,VS.90).gifNota:

El método de control de eventos puede ejecutarse en un subproceso al mismo tiempo que otro subproceso llama al método Stop o establece la propiedad Enabled en false. Esto puede dar lugar a que el evento Elapsed se provoque después de detenerse el temporizador. En el ejemplo de código para el método Stop se muestra una forma de evitar esta condición de carrera.

En .NET Framework versión 2.0 y anteriores, el componente Timer detecta y suprime todas las excepciones producidas por controladores de eventos para el evento Elapsed. Este comportamiento está sujeto a cambios en lanzamientos futuros de .NET Framework.

En el ejemplo de código siguiente se establece un controlador de eventos para el evento Timer.Elapsedy se crea e inicia un temporizador. El controlador de eventos muestra la propiedad SignalTime cada vez que se provoca el evento.

using System;
using System.Timers;

public class Timer1
{
    private static System.Timers.Timer aTimer;

    public static void Main()
    {
        // Normally, the timer is declared at the class level,
        // so that it stays in scope as long as it is needed.
        // If the timer is declared in a long-running method,  
        // KeepAlive must be used to prevent the JIT compiler 
        // from allowing aggressive garbage collection to occur 
        // before the method ends. (See end of method.)
        //System.Timers.Timer aTimer;

        // Create a timer with a ten second interval.
        aTimer = new System.Timers.Timer(10000);

        // Hook up the Elapsed event for the timer.
        aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);

        // Set the Interval to 2 seconds (2000 milliseconds).
        aTimer.Interval = 2000;
        aTimer.Enabled = true;

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

        // If the timer is declared in a long-running method, use
        // KeepAlive to prevent garbage collection from occurring
        // before the method ends.
        //GC.KeepAlive(aTimer);
    }

    // Specify what you want to happen when the Elapsed event is 
    // raised.
    private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
    }
}

/* This code example produces output similar to the following:

Press the Enter key to exit the program.
The Elapsed event was raised at 5/20/2007 8:42:27 PM
The Elapsed event was raised at 5/20/2007 8:42:29 PM
The Elapsed event was raised at 5/20/2007 8:42:31 PM
...
 */


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
Mostrar: