TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 方法

定義

使用 TimeSpan 值來測量時間間隔,建立新的 ITimer 實例。

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

參數

callback
TimerCallback

委派,表示定時器引發時要執行的方法。 針對回呼指定的方法應該重新進入,因為如果定時器在之前或先前的回呼仍在處理時再次觸發,可能會同時在兩個線程上叫用。

state
Object

要傳遞至 callback的物件。 這可能是 Null。

dueTime
TimeSpan

叫用 callback 之前所要延遲的時間量。 指定 InfiniteTimeSpan 以防止定時器啟動。 指定 Zero 立即啟動定時器。

period
TimeSpan

callback調用之間的時間間隔。 指定 InfiniteTimeSpan 以停用定期訊號。

傳回

新建立 ITimer 實例。

例外狀況

callback 為 null。

dueTimeperiod 值中的毫秒數為負數,不等於 Infinite,或大於 MaxValue

備註

回呼參數指定的委派會在經過 dueTime 之後叫用一次,之後每次 period 時間間隔都會經過。

如果 dueTime 為零,則會立即叫用回呼。 如果 dueTime 為 -1 毫秒,則不會叫用 callback;定時器已停用,但可以藉由呼叫 Change(TimeSpan, TimeSpan) 方法重新啟用。

如果 period 為 0 或 -1 毫秒,且 dueTime 為正數,則會叫用一次 callback;定時器定期行為已停用,但可以使用 Change(TimeSpan, TimeSpan) 方法重新啟用。

傳回 ITimer 實例會在定時器仍排程時隱含地根目錄。

CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 會擷取具有 ITimerExecutionContext,並在每次呼叫時叫用 callback。 您可以使用 SuppressFlow()來隱藏該擷取。

適用於