Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ElapsedEventArgs.SignalTime-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft das Datum/die Uhrzeit ab, zu der das Timer.Elapsed-Ereignis ausgelöst wurde.

Namespace:   System.Timers
Assembly:  System (in System.dll)

public DateTime SignalTime { get; }

Eigenschaftswert

Type: System.DateTime

Die Zeit, zu der das Elapsed-Ereignis ausgelöst wurde.

Die Timer.Elapsed -Ereignis wird ausgelöst, auf eine ThreadPool thread, damit die Methode für die Ereignisbehandlung in einem Thread gleichzeitig ausgeführt werden kann, Zeit, die einen Aufruf der Timer.Stop Methode, die in einem anderen Thread ausgeführt wird. Dadurch kann die Elapsed Ereignis ausgelöst werden, nachdem die Stop Methode wird aufgerufen. Diese Racebedingung kann nicht einfach durch den Vergleich verhindert werden der SignalTime -Eigenschaft mit dem Zeitpunkt bei der Stop -Methode aufgerufen wird, da die Ereignisbehandlungsmethode bereits ausgeführt wird, wenn möglicherweise die Stop Methode aufgerufen wird, oder zwischen dem Zeitpunkt Ausführung beginnt bei der Stop wird aufgerufen, und dem Zeitpunkt, wenn die Beendigungszeit gespeichert wird. Wenn es wichtig, den Thread, der Aufrufe der Stop Methode anzuhalten, während die Ereignisbehandlungsmethode noch ausgeführt wird, verwenden Sie einen robusteren Synchronisierungsmechanismus wie die Monitor Klasse oder die CompareExchange Methode. Code, der die CompareExchange Methode finden Sie im Beispiel für die Timer.Stop Methode.

Im folgenden Beispiel wird ein Timer -Objekt, das ausgelöst wird seine Timer.Elapsed Ereignis alle zwei Sekunden (2000 Millisekunden), richtet einen Ereignishandler für das Ereignis und startet den Zeitgeber. Der Ereignishandler zeigt den Wert der ElapsedEventArgs.SignalTime Eigenschaft jedem auslösen.

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
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: