Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad ElapsedEventArgs.SignalTime

 

Publicado: octubre de 2016

Obtiene la fecha y hora a la que se generó el evento Timer.Elapsed.

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

public DateTime SignalTime { get; }

Valor de propiedad

Type: System.DateTime

Hora a la que se generó el evento Elapsed.

El Timer.Elapsed evento se desencadena en un ThreadPool de subprocesos, de modo que el método de control de eventos puede ejecutarse en un subproceso al mismo tiempo que una llamada a la Timer.Stop método se ejecuta en otro subproceso. Esto puede ocasionar la Elapsed eventos provocados después de la Stop se llama al método. Esta condición de carrera no se puede evitar simplemente comparando la SignalTime propiedad con el tiempo cuando el Stop se denomina método, porque el método de control de eventos podría ya se estén ejecutando cuando el Stop método se llama o puede comenzar la ejecución entre el momento cuando la Stop se llama al método y el momento cuando se guarda la hora de detención. Si es fundamental para evitar que el subproceso que llama el Stop método continúe mientras todavía se está ejecutando el método de control de eventos, use un mecanismo de sincronización más sólido como el Monitor clase o CompareExchange método. El código que usa el CompareExchange método puede encontrarse en el ejemplo de la Timer.Stop (método).

En el ejemplo siguiente se crea un Timer objeto que desencadena su Timer.Elapsed evento cada dos segundos (2.000 milisegundos), configura un controlador de eventos para el evento e inicia el temporizador. El controlador de eventos muestra el valor de la ElapsedEventArgs.SignalTime propiedad cada vez que se genera.

using System;
using System.Timers;

public class Example
{
    private static Timer aTimer;

    public static void Main()
    {
        // Create a timer and set a two second interval.
        aTimer = new System.Timers.Timer();
        aTimer.Interval = 2000;

        // Hook up the Elapsed event for the timer. 
        aTimer.Elapsed += OnTimedEvent;

        // Have the timer fire repeated events (true is the default)
        aTimer.AutoReset = true;

        // Start the timer
        aTimer.Enabled = true;

        Console.WriteLine("Press the Enter key to exit the program at any time... ");
        Console.ReadLine();
    }

    private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
    }
}
// The example displays output like the following: 
//       Press the Enter key to exit the program at any time... 
//       The Elapsed event was raised at 5/20/2015 8:48:58 PM 
//       The Elapsed event was raised at 5/20/2015 8:49:00 PM 
//       The Elapsed event was raised at 5/20/2015 8:49:02 PM 
//       The Elapsed event was raised at 5/20/2015 8:49:04 PM 
//       The Elapsed event was raised at 5/20/2015 8:49:06 PM 

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: