Timer Constructor
Initializes a new instance of the Timer class.
Overload List
Initializes a new instance of the Timer class, using a 32-bit signed integer to specify the time interval.
Supported by the .NET Compact Framework.
[Visual Basic] Public Sub New(TimerCallback, Object, Integer, Integer)
[C#] public Timer(TimerCallback, object, int, int);
[C++] public: Timer(TimerCallback*, Object*, int, int);
[JScript] public function Timer(TimerCallback, Object, int, int);
Initializes a new instance of the Timer class, using 64-bit signed integers to measure time intervals.
Supported by the .NET Compact Framework.
[Visual Basic] Public Sub New(TimerCallback, Object, Long, Long)
[C#] public Timer(TimerCallback, object, long, long);
[C++] public: Timer(TimerCallback*, Object*, __int64, __int64);
[JScript] public function Timer(TimerCallback, Object, long, long);
Initializes a new instance of the Timer class, using TimeSpan values to measure time intervals.
Supported by the .NET Compact Framework.
[Visual Basic] Public Sub New(TimerCallback, Object, TimeSpan, TimeSpan)
[C#] public Timer(TimerCallback, object, TimeSpan, TimeSpan);
[C++] public: Timer(TimerCallback*, Object*, TimeSpan, TimeSpan);
[JScript] public function Timer(TimerCallback, Object, TimeSpan, TimeSpan);
Initializes a new instance of the Timer class, using 32-bit unsigned integers to measure time intervals. This constructor is not CLS-compliant.
Supported by the .NET Compact Framework.
[Visual Basic] Public Sub New(TimerCallback, Object, UInt32, UInt32)
[C#] public Timer(TimerCallback, object, uint, uint);
[C++] public: Timer(TimerCallback*, Object*, unsigned int, unsigned int);
[JScript] public function Timer(TimerCallback, Object, UInt32, UInt32);
Example
[Visual Basic, C#, C++] The following code example shows how to create a TimerCallback delegate and initialize a new instance of the Timer class.
[Visual Basic, C#, C++] Note This example shows how to use one of the overloaded versions of the Timer constructor. For other examples that might be available, see the individual overload topics.
[Visual Basic] Imports Microsoft.VisualBasic Imports System Imports System.Threading Public Class TimerExample Shared Sub Main() Dim autoEvent As New AutoResetEvent(False) Dim statusChecker As New StatusChecker(10) ' Create the delegate that invokes methods for the timer. Dim timerDelegate As TimerCallback = _ AddressOf statusChecker.CheckStatus Dim delayTime As New TimeSpan(0, 0, 1) Dim intervalTime As New TimeSpan(0, 0, 0, 0, 250) ' Create a timer that signals the delegate to invoke ' CheckStatus after one second, and every 1/4 second ' thereafter. Console.WriteLine("{0} Creating timer." & vbCrLf, _ DateTime.Now.ToString("h:mm:ss.fff")) Dim stateTimer As Timer = New Timer( _ timerDelegate, autoEvent, delayTime, intervalTime) ' When autoEvent signals, change the period to every ' 1/2 second. autoEvent.WaitOne(5000, False) stateTimer.Change( _ new TimeSpan(0), intervalTime.Add(intervalTime)) Console.WriteLine(vbCrLf & "Changing period." & vbCrLf) ' When autoEvent signals the second time, dispose of ' the timer. autoEvent.WaitOne(5000, False) stateTimer.Dispose() Console.WriteLine(vbCrLf & "Destroying timer.") End Sub End Class Public Class StatusChecker Dim invokeCount, maxCount As Integer Sub New(count As Integer) invokeCount = 0 maxCount = count End Sub ' This method is called by the timer delegate. Sub CheckStatus(stateInfo As Object) Dim autoEvent As AutoResetEvent = _ DirectCast(stateInfo, AutoResetEvent) invokeCount += 1 Console.WriteLine("{0} Checking status {1,2}.", _ DateTime.Now.ToString("h:mm:ss.fff"), _ invokeCount.ToString()) If invokeCount = maxCount Then ' Reset the counter and signal to stop the timer. invokeCount = 0 autoEvent.Set() End If End Sub End Class [C#] using System; using System.Threading; class TimerExample { static void Main() { AutoResetEvent autoEvent = new AutoResetEvent(false); StatusChecker statusChecker = new StatusChecker(10); // Create the delegate that invokes methods for the timer. TimerCallback timerDelegate = new TimerCallback(statusChecker.CheckStatus); TimeSpan delayTime = new TimeSpan(0, 0, 1); TimeSpan intervalTime = new TimeSpan(0, 0, 0, 0, 250); // Create a timer that signals the delegate to invoke // CheckStatus after one second, and every 1/4 second // thereafter. Console.WriteLine("{0} Creating timer.\n", DateTime.Now.ToString("h:mm:ss.fff")); Timer stateTimer = new Timer( timerDelegate, autoEvent, delayTime, intervalTime); // When autoEvent signals, change the period to every // 1/2 second. autoEvent.WaitOne(5000, false); stateTimer.Change(new TimeSpan(0), intervalTime + intervalTime); Console.WriteLine("\nChanging period.\n"); // When autoEvent signals the second time, dispose of // the timer. autoEvent.WaitOne(5000, false); stateTimer.Dispose(); Console.WriteLine("\nDestroying timer."); } } class StatusChecker { int invokeCount, maxCount; public StatusChecker(int count) { invokeCount = 0; maxCount = count; } // This method is called by the timer delegate. public void CheckStatus(Object stateInfo) { AutoResetEvent autoEvent = (AutoResetEvent)stateInfo; Console.WriteLine("{0} Checking status {1,2}.", DateTime.Now.ToString("h:mm:ss.fff"), (++invokeCount).ToString()); if(invokeCount == maxCount) { // Reset the counter and signal Main. invokeCount = 0; autoEvent.Set(); } } } [C++] #using <mscorlib.dll> using namespace System; using namespace System::Threading; __gc class StatusChecker { int invokeCount, maxCount; public: StatusChecker(int count) : invokeCount(0), maxCount(count) {} // This method is called by the timer delegate. void CheckStatus(Object* stateInfo) { AutoResetEvent* autoEvent = dynamic_cast<AutoResetEvent*>(stateInfo); Console::WriteLine(S"{0} Checking status {1,2}.", DateTime::Now.ToString("h:mm:ss.fff"), (++invokeCount).ToString()); if(invokeCount == maxCount) { // Reset the counter and signal main. invokeCount = 0; autoEvent->Set(); } } }; void main() { AutoResetEvent* autoEvent = new AutoResetEvent(false); StatusChecker* statusChecker = new StatusChecker(10); // Create the delegate that invokes methods for the timer. TimerCallback* timerDelegate = new TimerCallback( statusChecker, &StatusChecker::CheckStatus); TimeSpan delayTime = TimeSpan(0, 0, 1); TimeSpan intervalTime = TimeSpan(0, 0, 0, 0, 250); // Create a timer that signals the delegate to invoke CheckStatus // after one second, and every 1/4 second thereafter. Console::WriteLine(S"{0} Creating timer.\n", DateTime::Now.ToString("h:mm:ss.fff")); Timer* stateTimer = new Timer(timerDelegate, autoEvent, delayTime, intervalTime); // When autoEvent signals, change the period to every 1/2 second. autoEvent->WaitOne(5000, false); stateTimer->Change(TimeSpan(0), intervalTime + intervalTime); Console::WriteLine(S"\nChanging period.\n"); // When autoEvent signals the second time, dispose of the timer. autoEvent->WaitOne(5000, false); stateTimer->Dispose(); Console::WriteLine(S"\nDestroying timer."); }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.