TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
public:
virtual System::Threading::ITimer ^ CreateTimer(System::Threading::TimerCallback ^ callback, System::Object ^ state, TimeSpan dueTime, TimeSpan period);
public virtual System.Threading.ITimer CreateTimer (System.Threading.TimerCallback callback, object? state, TimeSpan dueTime, TimeSpan period);
abstract member CreateTimer : System.Threading.TimerCallback * obj * TimeSpan * TimeSpan -> System.Threading.ITimer
override this.CreateTimer : System.Threading.TimerCallback * obj * TimeSpan * TimeSpan -> System.Threading.ITimer
Public Overridable Function CreateTimer (callback As TimerCallback, state As Object, dueTime As TimeSpan, period As TimeSpan) As ITimer
Parametry
- callback
- TimerCallback
Delegat reprezentujący metodę do wykonania podczas uruchamiania czasomierza. Metoda określona dla wywołania zwrotnego powinna być reentrant, ponieważ może być wywoływana jednocześnie w dwóch wątkach, jeśli czasomierz uruchamia się ponownie przed lub gdy poprzednie wywołanie zwrotne jest nadal obsługiwane.
- state
- Object
Obiekt, który ma zostać przekazany do callback
. Może to być wartość null.
- dueTime
- TimeSpan
Czas opóźnienia przed wywołaniem callback
. Określ InfiniteTimeSpan, aby uniemożliwić uruchamianie czasomierza. Określ Zero, aby natychmiast uruchomić czasomierz.
- period
- TimeSpan
Przedział czasu między wywołaniami callback
. Określ InfiniteTimeSpan, aby wyłączyć okresowe sygnalizowanie.
Zwraca
Nowo utworzone wystąpienie ITimer.
Wyjątki
callback
ma wartość null.
Liczba milisekund w wartości dueTime
lub period
jest ujemna i nie jest równa Infinitelub jest większa niż MaxValue.
Uwagi
Delegat określony przez parametr wywołania zwrotnego jest wywoływany raz po upływie dueTime
, a następnie za każdym razem, gdy upłynie przedział czasu period
.
Jeśli dueTime
wynosi zero, wywołanie zwrotne jest wywoływane natychmiast. Jeśli dueTime
jest -1 milisekund, callback
nie jest wywoływana; czasomierz jest wyłączony, ale można go ponownie włączyć, wywołując metodę Change(TimeSpan, TimeSpan).
Jeśli period
wynosi 0 lub -1 milisekund, a dueTime
jest dodatnia, callback
jest wywoływana raz; okresowe zachowanie czasomierza jest wyłączone, ale można je ponownie włączyć przy użyciu metody Change(TimeSpan, TimeSpan).
Wystąpienie zwracane ITimer będzie niejawnie zakorzenione, gdy czasomierz jest nadal zaplanowany.
CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) przechwytuje ExecutionContext i przechowuje je za pomocą ITimer do użycia podczas wywoływania callback
za każdym razem, gdy jest wywoływany. Tego przechwytywania można pominąć za pomocą SuppressFlow().