Udostępnij za pośrednictwem


TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) Metoda

Definicja

Tworzy nowe wystąpienie ITimer przy użyciu wartości TimeSpan do mierzenia interwałów czasu.

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().

Dotyczy