TimeProvider.CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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。
備註
回呼參數指定的委派會在經過 dueTime
之後叫用一次,之後每次 period
時間間隔都會經過。
如果 dueTime
為零,則會立即叫用回呼。 如果 dueTime
為 -1 毫秒,則不會叫用 callback
;定時器已停用,但可以藉由呼叫 Change(TimeSpan, TimeSpan) 方法重新啟用。
如果 period
為 0 或 -1 毫秒,且 dueTime
為正數,則會叫用一次 callback
;定時器定期行為已停用,但可以使用 Change(TimeSpan, TimeSpan) 方法重新啟用。
傳回 ITimer 實例會在定時器仍排程時隱含地根目錄。
CreateTimer(TimerCallback, Object, TimeSpan, TimeSpan) 會擷取具有 ITimer 的 ExecutionContext,並在每次呼叫時叫用 callback
。 您可以使用 SuppressFlow()來隱藏該擷取。