Timer.Interval Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft das Intervall in Millisekunden ab, in dem das Elapsed-Ereignis ausgelöst wird, oder legt dieses fest.
public:
property double Interval { double get(); void set(double value); };
public double Interval { get; set; }
[System.Timers.TimersDescription("TimerInterval")]
public double Interval { get; set; }
[System.Timers.TimersDescription("TimerInterval")]
[System.ComponentModel.SettingsBindable(true)]
public double Interval { get; set; }
member this.Interval : double with get, set
[<System.Timers.TimersDescription("TimerInterval")>]
member this.Interval : double with get, set
[<System.Timers.TimersDescription("TimerInterval")>]
[<System.ComponentModel.SettingsBindable(true)>]
member this.Interval : double with get, set
Public Property Interval As Double
Eigenschaftswert
Die Zeit zwischen den Elapsed-Ereignissen in Millisekunden. Der Wert muss größer als 0 (null) und kleiner oder gleich Int32.MaxValue sein. Der Standardwert ist 100 Millisekunden.
- Attribute
Ausnahmen
Das Intervall ist kleiner oder gleich 0 (null).
- oder -
Das Intervall ist größer als Int32.MaxValue, und der Timer ist derzeit aktiviert. (Wenn der Zeitgeber nicht gerade aktiviert ist, wird keine Ausnahme ausgelöst, bis er aktiviert wird.)
Beispiele
Das folgende Beispiel instanziiert ein Timer-Objekt, das sein Timer.Elapsed-Ereignis alle zwei Sekunden (2000 Millisekunden) auslöst, einen Ereignishandler für das Ereignis einrichtet und den Timer startet. Der Ereignishandler zeigt den Wert der ElapsedEventArgs.SignalTime-Eigenschaft bei jedem Auslösen an.
using namespace System;
using namespace System::Timers;
public ref class Example
{
private:
static System::Timers::Timer^ aTimer;
public:
static void Demo()
{
// Create a timer and set a two second interval.
aTimer = gcnew System::Timers::Timer();
aTimer->Interval = 2000;
// Hook up the Elapsed event for the timer.
aTimer->Elapsed += gcnew System::Timers::ElapsedEventHandler(Example::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);
}
};
int main()
{
Example::Demo();
}
// 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
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
open System.Timers
let onTimedEvent source (e: ElapsedEventArgs) =
printfn $"The Elapsed event was raised at {e.SignalTime}"
// Create a timer and set a two second interval.
let aTimer = new Timer()
aTimer.Interval <- 2000
// Hook up the Elapsed event for the timer.
aTimer.Elapsed.AddHandler onTimedEvent
// Have the timer fire repeated events (true is the default)
aTimer.AutoReset <- true
// Start the timer
aTimer.Enabled <- true
printfn "Press the Enter key to exit the program at any time... "
stdin.ReadLine() |> ignore
// 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
Imports System.Timers
Public Module Example
Private aTimer As Timer
Public Sub 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.
AddHandler aTimer.Elapsed, AddressOf 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()
End Sub
Private Sub OnTimedEvent(source As Object, e As System.Timers.ElapsedEventArgs)
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime)
End Sub
End Module
' 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
Hinweise
Sie verwenden die Interval -Eigenschaft, um die Häufigkeit zu bestimmen, mit der das Elapsed Ereignis ausgelöst wird. Da die Timer -Klasse von der Systemuhr abhängt, hat sie dieselbe Auflösung wie die Systemuhr. Das bedeutet, dass das Elapsed-Ereignis in einem durch die Auflösung der Systemuhr definierten Intervall ausgelöst wird, wenn die Interval-Eigenschaft kleiner als die Systemuhrauflösung ist. Im folgenden Beispiel wird die Interval -Eigenschaft auf 5 Millisekunden festgelegt. Bei Ausführung auf einem Windows-System, dessen Systemuhr eine Auflösung von ungefähr 15 Millisekunden aufweist, löst das Ereignis ungefähr alle 15 Millisekunden und nicht alle 5 Millisekunden aus.
Hinweis
Die verwendete Systemuhr ist die gleiche Uhr, die von GetTickCount verwendet wird, die nicht von Änderungen betroffen ist, die mit timeBeginPeriod und timeEndPeriod vorgenommen wurden.
using System;
using System.IO;
using System.Collections.Generic;
using System.Timers;
public class Example
{
private static Timer aTimer;
private static List<String> eventlog;
private static int nEventsFired = 0;
private static DateTime previousTime;
public static void Main()
{
eventlog = new List<String>();
StreamWriter sr = new StreamWriter(@".\Interval.txt");
// Create a timer with a five millisecond interval.
aTimer = new Timer(5);
aTimer.Elapsed += OnTimedEvent;
// Hook up the Elapsed event for the timer.
aTimer.AutoReset = true;
sr.WriteLine("The timer should fire every {0} milliseconds.",
aTimer.Interval);
aTimer.Enabled = true;
Console.WriteLine("Press the Enter key to exit the program... ");
Console.ReadLine();
foreach (var item in eventlog)
sr.WriteLine(item);
sr.Close();
Console.WriteLine("Terminating the application...");
}
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
eventlog.Add(String.Format("Elapsed event at {0:HH':'mm':'ss.ffffff} ({1})",
e.SignalTime,
nEventsFired++ == 0 ?
0.0 : (e.SignalTime - previousTime).TotalMilliseconds));
previousTime = e.SignalTime;
if (nEventsFired == 20) {
Console.WriteLine("No more events will fire...");
aTimer.Enabled = false;
}
}
}
// The example writes output like the following to a file:
// The timer should fire every 5 milliseconds.
// Elapsed event at 08:42:49.370344 (0)
// Elapsed event at 08:42:49.385345 (15.0015)
// Elapsed event at 08:42:49.400347 (15.0015)
// Elapsed event at 08:42:49.415348 (15.0015)
// Elapsed event at 08:42:49.430350 (15.0015)
// Elapsed event at 08:42:49.445351 (15.0015)
// Elapsed event at 08:42:49.465353 (20.002)
// Elapsed event at 08:42:49.480355 (15.0015)
// Elapsed event at 08:42:49.495356 (15.0015)
// Elapsed event at 08:42:49.510358 (15.0015)
// Elapsed event at 08:42:49.525359 (15.0015)
// Elapsed event at 08:42:49.540361 (15.0015)
// Elapsed event at 08:42:49.555362 (15.0015)
// Elapsed event at 08:42:49.570364 (15.0015)
// Elapsed event at 08:42:49.585365 (15.0015)
// Elapsed event at 08:42:49.605367 (20.002)
// Elapsed event at 08:42:49.620369 (15.0015)
// Elapsed event at 08:42:49.635370 (15.0015)
// Elapsed event at 08:42:49.650372 (15.0015)
// Elapsed event at 08:42:49.665373 (15.0015)
open System
open System.IO
open System.Timers
let aTimer = new Timer 5
let eventlog = ResizeArray()
let mutable nEventsFired = 0
let mutable previousTime = DateTime()
let onTimedEvent source (e: ElapsedEventArgs) =
String.Format("Elapsed event at {0:HH':'mm':'ss.ffffff} ({1})", e.SignalTime, if nEventsFired = 0 then 0. else (e.SignalTime - previousTime).TotalMilliseconds)
|> eventlog.Add
nEventsFired <- nEventsFired + 1
previousTime <- e.SignalTime
if nEventsFired = 20 then
printfn "No more events will fire..."
aTimer.Enabled <- false
[<EntryPoint>]
let main _ =
use sr = new StreamWriter(@".\Interval.txt")
// Create a timer with a five millisecond interval.
aTimer.Elapsed.AddHandler onTimedEvent
// Hook up the Elapsed event for the timer.
aTimer.AutoReset <- true
sr.WriteLine $"The timer should fire every {aTimer.Interval} milliseconds."
aTimer.Enabled <- true
printfn "Press the Enter key to exit the program... "
stdin.ReadLine() |> ignore
for item in eventlog do
sr.WriteLine item
printfn "Terminating the application..."
0
// The example writes output like the following to a file:
// The timer should fire every 5 milliseconds.
// Elapsed event at 08:42:49.370344 (0)
// Elapsed event at 08:42:49.385345 (15.0015)
// Elapsed event at 08:42:49.400347 (15.0015)
// Elapsed event at 08:42:49.415348 (15.0015)
// Elapsed event at 08:42:49.430350 (15.0015)
// Elapsed event at 08:42:49.445351 (15.0015)
// Elapsed event at 08:42:49.465353 (20.002)
// Elapsed event at 08:42:49.480355 (15.0015)
// Elapsed event at 08:42:49.495356 (15.0015)
// Elapsed event at 08:42:49.510358 (15.0015)
// Elapsed event at 08:42:49.525359 (15.0015)
// Elapsed event at 08:42:49.540361 (15.0015)
// Elapsed event at 08:42:49.555362 (15.0015)
// Elapsed event at 08:42:49.570364 (15.0015)
// Elapsed event at 08:42:49.585365 (15.0015)
// Elapsed event at 08:42:49.605367 (20.002)
// Elapsed event at 08:42:49.620369 (15.0015)
// Elapsed event at 08:42:49.635370 (15.0015)
// Elapsed event at 08:42:49.650372 (15.0015)
// Elapsed event at 08:42:49.665373 (15.0015)
Imports System.Collections.Generic
Imports System.IO
Imports System.Timers
Module Example
Private WithEvents aTimer As Timer
Private eventlog As List(Of String)
Private nEventsFired As Integer = 0
Private previousTime As Date
Public Sub Main()
eventlog = New List(Of String)()
Dim sr As New StreamWriter(".\Interval.txt")
' Create a timer with a five millisecond interval.
aTimer = New Timer(5)
aTimer.AutoReset = True
sr.WriteLine("The timer should fire every {0} milliseconds.",
aTimer.Interval)
aTimer.Enabled = True
Console.WriteLine("Press the Enter key to exit the program... ")
Console.ReadLine()
For Each item In eventlog
sr.WriteLine(item)
Next
sr.Close()
Console.WriteLine("Terminating the application...")
End Sub
Private Sub OnTimedEvent(source As Object, e As ElapsedEventArgs) _
Handles aTimer.Elapsed
eventlog.Add(String.Format("Elapsed event at {0:HH':'mm':'ss.ffffff} ({1})",
e.SignalTime,
If(nEventsFired = 0,
0.0, (e.SignalTime - previousTime).TotalMilliseconds)))
nEventsFired += 1
previousTime = e.SignalTime
if nEventsFired = 20 Then
Console.WriteLine("No more events will fire...")
aTimer.Enabled = False
End If
End Sub
End Module
' The example displays the following output:
' The timer should fire every 5 milliseconds.
' Elapsed event at 08:42:49.370344 (0)
' Elapsed event at 08:42:49.385345 (15.0015)
' Elapsed event at 08:42:49.400347 (15.0015)
' Elapsed event at 08:42:49.415348 (15.0015)
' Elapsed event at 08:42:49.430350 (15.0015)
' Elapsed event at 08:42:49.445351 (15.0015)
' Elapsed event at 08:42:49.465353 (20.002)
' Elapsed event at 08:42:49.480355 (15.0015)
' Elapsed event at 08:42:49.495356 (15.0015)
' Elapsed event at 08:42:49.510358 (15.0015)
' Elapsed event at 08:42:49.525359 (15.0015)
' Elapsed event at 08:42:49.540361 (15.0015)
' Elapsed event at 08:42:49.555362 (15.0015)
' Elapsed event at 08:42:49.570364 (15.0015)
' Elapsed event at 08:42:49.585365 (15.0015)
' Elapsed event at 08:42:49.605367 (20.002)
' Elapsed event at 08:42:49.620369 (15.0015)
' Elapsed event at 08:42:49.635370 (15.0015)
' Elapsed event at 08:42:49.650372 (15.0015)
' Elapsed event at 08:42:49.665373 (15.0015)
Wenn Ihre App eine höhere Auflösung als die Timer der Klasse oder der Systemuhr erfordert, verwenden Sie die hochauflösenden Multimediatimer. Weitere Informationen finden Sie unter Vorgehensweise: Verwenden des High-Resolution Timer.
Wenn das Intervall nach dem Starten von Timer festgelegt wird, wird die Anzahl zurückgesetzt. Wenn Sie beispielsweise das Intervall auf 5 Sekunden und dann die Enabled -Eigenschaft auf true
festlegen, beginnt die Anzahl zu dem Zeitpunkt Enabled , zu dem festgelegt wird. Wenn Sie das Intervall auf 10 Sekunden zurücksetzen, wenn die Anzahl 3 Sekunden beträgt, wird das Elapsed Ereignis zum ersten Mal ausgelöst, nachdem Enabled auf true
festgelegt wurde.
Wenn Enabled auf true
festgelegt ist und AutoReset auf false
festgelegt ist, löst das TimerElapsed -Ereignis nur einmal aus, wenn das Intervall zum ersten Mal verstrichen ist.
Enabled wird dann auf false
festgelegt.
Hinweis
Wenn Enabled und AutoReset auf false
festgelegt sind und der Timer zuvor aktiviert wurde, bewirkt das Festlegen der Interval -Eigenschaft, dass das Elapsed Ereignis einmal ausgelöst wird, als ob die Enabled Eigenschaft auf true
festgelegt wäre. Wenn Sie das Intervall ohne Auslösen des Ereignisses festlegen möchten, können Sie die Enabled -Eigenschaft vorübergehend auf true
festlegen, die Interval -Eigenschaft auf das gewünschte Zeitintervall festlegen und die -Eigenschaft dann sofort wieder auf false
festlegenEnabled.