Timer.Change Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wijzigt u de begintijd en het interval tussen methode-aanroepen voor een timer.
Overloads
| Name | Description |
|---|---|
| Change(Int32, Int32) |
Hiermee wijzigt u de begintijd en het interval tussen methode-aanroepen voor een timer met behulp van 32-bits ondertekende gehele getallen om tijdsintervallen te meten. |
| Change(Int64, Int64) |
Hiermee wijzigt u de begintijd en het interval tussen methode-aanroepen voor een timer met behulp van 64-bits ondertekende gehele getallen om tijdsintervallen te meten. |
| Change(TimeSpan, TimeSpan) |
Hiermee wijzigt u de begintijd en het interval tussen methode-aanroepen voor een timer, waarbij TimeSpan waarden worden gebruikt om tijdsintervallen te meten. |
| Change(UInt32, UInt32) |
Hiermee wijzigt u de begintijd en het interval tussen methodeaanroepen voor een timer met behulp van 32-bits niet-ondertekende gehele getallen om tijdsintervallen te meten. |
Change(Int32, Int32)
Hiermee wijzigt u de begintijd en het interval tussen methode-aanroepen voor een timer met behulp van 32-bits ondertekende gehele getallen om tijdsintervallen te meten.
public:
bool Change(int dueTime, int period);
public bool Change(int dueTime, int period);
member this.Change : int * int -> bool
Public Function Change (dueTime As Integer, period As Integer) As Boolean
Parameters
- dueTime
- Int32
De hoeveelheid tijd die moet worden vertraagd voordat de callback-methode wordt aangeroepen die is opgegeven toen de Timer callback werd gemaakt, in milliseconden. Geef Infinite op om te voorkomen dat de timer opnieuw wordt opgestart. Geef nul (0) op om de timer onmiddellijk opnieuw op te starten.
- period
- Int32
Het tijdsinterval tussen aanroepen van de callback-methode die is opgegeven toen de Timer callback werd gemaakt, in milliseconden. Geef Infinite op om periodieke signalering uit te schakelen.
Retouren
true als de timer is bijgewerkt; anders, false.
Uitzonderingen
De Timer is al verwijderd.
De dueTime parameter of period parameter is negatief en is niet gelijk aan Infinite.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een Timer en, na een bepaald aantal aanroepen, de periode ervan wijzigt.
using System;
using System.Threading;
class TimerExample
{
static void Main()
{
// Create an AutoResetEvent to signal the timeout threshold in the
// timer callback has been reached.
var autoEvent = new AutoResetEvent(false);
var statusChecker = new StatusChecker(10);
// Create a timer that invokes CheckStatus after one second,
// and every 1/4 second thereafter.
Console.WriteLine("{0:h:mm:ss.fff} Creating timer.\n",
DateTime.Now);
var stateTimer = new Timer(statusChecker.CheckStatus,
autoEvent, 1000, 250);
// When autoEvent signals, change the period to every half second.
autoEvent.WaitOne();
stateTimer.Change(0, 500);
Console.WriteLine("\nChanging period to .5 seconds.\n");
// When autoEvent signals the second time, dispose of the timer.
autoEvent.WaitOne();
stateTimer.Dispose();
Console.WriteLine("\nDestroying timer.");
}
}
class StatusChecker
{
private int invokeCount;
private int 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 the waiting thread.
invokeCount = 0;
autoEvent.Set();
}
}
}
// The example displays output like the following:
// 11:59:54.202 Creating timer.
//
// 11:59:55.217 Checking status 1.
// 11:59:55.466 Checking status 2.
// 11:59:55.716 Checking status 3.
// 11:59:55.968 Checking status 4.
// 11:59:56.218 Checking status 5.
// 11:59:56.470 Checking status 6.
// 11:59:56.722 Checking status 7.
// 11:59:56.972 Checking status 8.
// 11:59:57.223 Checking status 9.
// 11:59:57.473 Checking status 10.
//
// Changing period to .5 seconds.
//
// 11:59:57.474 Checking status 1.
// 11:59:57.976 Checking status 2.
// 11:59:58.476 Checking status 3.
// 11:59:58.977 Checking status 4.
// 11:59:59.477 Checking status 5.
// 11:59:59.977 Checking status 6.
// 12:00:00.478 Checking status 7.
// 12:00:00.980 Checking status 8.
// 12:00:01.481 Checking status 9.
// 12:00:01.981 Checking status 10.
//
// Destroying timer.
Imports System.Threading
Public Module Example
Public Sub Main()
' Use an AutoResetEvent to signal the timeout threshold in the
' timer callback has been reached.
Dim autoEvent As New AutoResetEvent(False)
Dim statusChecker As New StatusChecker(10)
' Create a timer that invokes CheckStatus after one second,
' and every 1/4 second thereafter.
Console.WriteLine("{0:h:mm:ss.fff} Creating timer." & vbCrLf,
DateTime.Now)
Dim stateTimer As New Timer(AddressOf statusChecker.CheckStatus,
autoEvent, 1000, 250)
' When autoEvent signals, change the period to every half second.
autoEvent.WaitOne()
stateTimer.Change(0, 500)
Console.WriteLine(vbCrLf & "Changing period to .5 seconds." & vbCrLf)
' When autoEvent signals the second time, dispose of the timer.
autoEvent.WaitOne()
stateTimer.Dispose()
Console.WriteLine(vbCrLf & "Destroying timer.")
End Sub
End Module
Public Class StatusChecker
Dim invokeCount, maxCount As Integer
Sub New(count As Integer)
invokeCount = 0
maxCount = count
End Sub
' The timer callback method.
Sub CheckStatus(stateInfo As Object)
Dim autoEvent As AutoResetEvent = DirectCast(stateInfo, AutoResetEvent)
invokeCount += 1
Console.WriteLine("{0:h:mm:ss.fff} Checking status {1,2}.",
DateTime.Now, invokeCount)
If invokeCount = maxCount Then
' Reset the counter and signal the waiting thread.
invokeCount = 0
autoEvent.Set()
End If
End Sub
End Class
' The example displays output like the following:
' 11:59:54.202 Creating timer.
'
' 11:59:55.217 Checking status 1.
' 11:59:55.466 Checking status 2.
' 11:59:55.716 Checking status 3.
' 11:59:55.968 Checking status 4.
' 11:59:56.218 Checking status 5.
' 11:59:56.470 Checking status 6.
' 11:59:56.722 Checking status 7.
' 11:59:56.972 Checking status 8.
' 11:59:57.223 Checking status 9.
' 11:59:57.473 Checking status 10.
'
' Changing period to .5 seconds.
'
' 11:59:57.474 Checking status 1.
' 11:59:57.976 Checking status 2.
' 11:59:58.476 Checking status 3.
' 11:59:58.977 Checking status 4.
' 11:59:59.477 Checking status 5.
' 11:59:59.977 Checking status 6.
' 12:00:00.478 Checking status 7.
' 12:00:00.980 Checking status 8.
' 12:00:01.481 Checking status 9.
' 12:00:01.981 Checking status 10.
'
' Destroying timer.
Opmerkingen
De callback-methode wordt eenmaal aangeroepen nadat dueTime deze is verstreken en daarna telkens wanneer het tijdsinterval dat is opgegeven door period verstreken.
Als dueTime nul (0) is, wordt de callback-methode onmiddellijk aangeroepen. Als dueTime dat het is Timeout.Infinite, wordt de callback-methode nooit aangeroepen; de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een positieve waarde op te geven voor dueTime.
Als period nul (0) of Timeout.Infinite, en dueTime niet Timeout.Infinite, wordt de callbackmethode eenmaal aangeroepen; het periodieke gedrag van de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een positieve waarde op te geven voor period.
De Change methode kan worden aangeroepen vanuit de TimerCallback gemachtigde.
Zie ook
Van toepassing op
Change(Int64, Int64)
Hiermee wijzigt u de begintijd en het interval tussen methode-aanroepen voor een timer met behulp van 64-bits ondertekende gehele getallen om tijdsintervallen te meten.
public:
bool Change(long dueTime, long period);
public bool Change(long dueTime, long period);
member this.Change : int64 * int64 -> bool
Public Function Change (dueTime As Long, period As Long) As Boolean
Parameters
- dueTime
- Int64
De hoeveelheid tijd die moet worden vertraagd voordat de callback-methode wordt aangeroepen die is opgegeven toen de Timer callback werd gemaakt, in milliseconden. Geef Infinite op om te voorkomen dat de timer opnieuw wordt opgestart. Geef nul (0) op om de timer onmiddellijk opnieuw op te starten. Deze waarde moet kleiner dan of gelijk zijn aan 4294967294.
- period
- Int64
Het tijdsinterval tussen aanroepen van de callback-methode die is opgegeven toen de Timer callback werd gemaakt, in milliseconden. Geef Infinite op om periodieke signalering uit te schakelen.
Retouren
true als de timer is bijgewerkt; anders, false.
Uitzonderingen
De Timer is al verwijderd.
dueTime of period kleiner is dan -1.
– of –
dueTime of period groter is dan 4294967294.
Opmerkingen
De callback-methode wordt eenmaal aangeroepen nadat dueTime deze is verstreken en daarna telkens wanneer het tijdsinterval dat is opgegeven door period verstreken.
Als dueTime nul (0) is, wordt de callback-methode onmiddellijk aangeroepen. Als dueTime dat het is Timeout.Infinite, wordt de callback-methode nooit aangeroepen; de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een positieve waarde op te geven voor dueTime.
Als period nul (0) of Timeout.Infinite, en dueTime niet Timeout.Infinite, wordt de callbackmethode eenmaal aangeroepen; het periodieke gedrag van de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een positieve waarde op te geven voor period.
De Change methode kan worden aangeroepen vanuit de TimerCallback gemachtigde.
Zie ook
Van toepassing op
Change(TimeSpan, TimeSpan)
Hiermee wijzigt u de begintijd en het interval tussen methode-aanroepen voor een timer, waarbij TimeSpan waarden worden gebruikt om tijdsintervallen te meten.
public:
bool Change(TimeSpan dueTime, TimeSpan period);
public bool Change(TimeSpan dueTime, TimeSpan period);
member this.Change : TimeSpan * TimeSpan -> bool
Public Function Change (dueTime As TimeSpan, period As TimeSpan) As Boolean
Parameters
- dueTime
- TimeSpan
Een TimeSpan weergave van de tijd die moet worden vertraagd voordat de callback-methode wordt aangeroepen die is opgegeven toen de Timer callback werd gemaakt. Geef InfiniteTimeSpan op om te voorkomen dat de timer opnieuw wordt opgestart. Geef Zero op om de timer onmiddellijk opnieuw op te starten.
- period
- TimeSpan
Het tijdsinterval tussen aanroepen van de callback-methode die is opgegeven toen de Timer callback werd gemaakt. Geef InfiniteTimeSpan op om periodieke signalering uit te schakelen.
Retouren
true als de timer is bijgewerkt; anders, false.
Uitzonderingen
De Timer is al verwijderd.
De dueTime of period parameter is in milliseconden kleiner dan -1.
De dueTime of period parameter, in milliseconden, is groter dan 4294967294.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een Timer en, na een bepaald aantal aanroepen, de periode ervan wijzigt.
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();
}
}
}
Imports System.Threading
Public Class TimerExample
<MTAThread> _
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
Opmerkingen
De callback-methode wordt eenmaal aangeroepen nadat dueTime deze is verstreken en daarna telkens wanneer het tijdsinterval dat is opgegeven door period verstreken.
Als dueTime dat het is TimeSpan.Zero, wordt de callback-methode onmiddellijk aangeroepen. Als dueTime dat het is InfiniteTimeSpan, wordt de callback-methode nooit aangeroepen; de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een positieve waarde op te geven voor dueTime.
Als period dit of InfiniteTimeSpanTimeSpan.Zero , en positief dueTime is, wordt de callback-methode eenmaal aangeroepen; het periodieke gedrag van de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een waarde op te geven die groter is dan nul voor period.
De Change methode kan worden aangeroepen vanuit de TimerCallback gemachtigde.
Zie ook
Van toepassing op
Change(UInt32, UInt32)
Belangrijk
Deze API is niet CLS-conform.
Hiermee wijzigt u de begintijd en het interval tussen methodeaanroepen voor een timer met behulp van 32-bits niet-ondertekende gehele getallen om tijdsintervallen te meten.
public:
bool Change(System::UInt32 dueTime, System::UInt32 period);
[System.CLSCompliant(false)]
public bool Change(uint dueTime, uint period);
[<System.CLSCompliant(false)>]
member this.Change : uint32 * uint32 -> bool
Public Function Change (dueTime As UInteger, period As UInteger) As Boolean
Parameters
- dueTime
- UInt32
De hoeveelheid tijd die moet worden vertraagd voordat de callback-methode wordt aangeroepen die is opgegeven toen de Timer callback werd gemaakt, in milliseconden. Geef Infinite op om te voorkomen dat de timer opnieuw wordt opgestart. Geef nul (0) op om de timer onmiddellijk opnieuw op te starten.
- period
- UInt32
Het tijdsinterval tussen aanroepen van de callback-methode die is opgegeven toen de Timer callback werd gemaakt, in milliseconden. Geef Infinite op om periodieke signalering uit te schakelen.
Retouren
true als de timer is bijgewerkt; anders, false.
- Kenmerken
Uitzonderingen
De Timer is al verwijderd.
Opmerkingen
De callback-methode wordt eenmaal aangeroepen nadat dueTime deze is verstreken en daarna telkens wanneer het tijdsinterval dat is opgegeven door period verstreken.
Als dueTime nul (0) is, wordt de callback-methode onmiddellijk aangeroepen. Als dueTime dat het is Timeout.Infinite, wordt de callback-methode nooit aangeroepen; de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een positieve waarde op te geven voor dueTime.
Als period nul (0) of Timeout.Infinite, en dueTime niet Timeout.Infinite, wordt de callbackmethode eenmaal aangeroepen; het periodieke gedrag van de timer is uitgeschakeld, maar kan opnieuw worden ingeschakeld door aan te roepen Change en een positieve waarde op te geven voor period.
De Change methode kan worden aangeroepen vanuit de TimerCallback gemachtigde.