DispatchSource.Timer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此類來源會定期呼叫目標佇列的事件處理器。
public class DispatchSource.Timer : CoreFoundation.DispatchSource
type DispatchSource.Timer = class
inherit DispatchSource
- 繼承
備註
計時器參數以 dispatch_source_set_timer() 函式設定。 一旦這個函式回傳,任何先前計時器參數累積的待處理來源資料都已被清除;計時器的下一次發射會在開始時發生,之後每隔一奈秒,直到計時器來源被取消為止。
系統可能會延遲計時器點火,以提升功耗與系統效能。 允許延遲的上限可用餘裕參數配置,下限則由系統控制。
對於初始計時器啟動,允許延遲的上限設為餘裕奈秒。 對於後續計時器在起始 + N * 間隔點觸發,上限為 MIN(餘裕,間隔 / 2)。
允許延遲的下限可能會因程序狀態而異,例如應用程式介面的可見性。 若指定的計時器來源是以將「嚴格」設為真(true)的建構子創建,系統會盡力嚴格遵守所提供的寬限值,即使該值小於當前下限。 請注意,即使指定了這個旗標,延遲也會很小。
var dispatchSource = new DispatchSource.Timer (strict: true, queue: DispatchQueue.MainQueue);
long delay = 2000000000;
long leeway = 5000000000;
dispatchSource.SetTimer (DispatchTime.Now, delay, leeway);
dispatchSource.SetRegistrationHandler (() => {
Console.WriteLine ("Timer registered");
});
dispatchSource.SetEventHandler (() => {
Console.WriteLine ("Timer tick");
});
dispatchSource.SetCancelHandler (() => {
Console.WriteLine ("Timer stopped");
});
dispatchSource.Resume ();
建構函式
| 名稱 | Description |
|---|---|
| DispatchSource.Timer(Boolean, DispatchQueue) |
此類來源會定期呼叫目標佇列的事件處理器。 |
| DispatchSource.Timer(DispatchQueue) |
建立一個定時器調度來源,並會在週期性間隔中被呼叫。 |
| DispatchSource.Timer(IntPtr, Boolean) |
此類來源會定期呼叫目標佇列的事件處理器。 |
| DispatchSource.Timer(IntPtr) |
此類來源會定期呼叫目標佇列的事件處理器。 |
屬性
| 名稱 | Description |
|---|---|
| Handle |
此類來源會定期呼叫目標佇列的事件處理器。 (繼承來源 DisposableObject) |
| IsCanceled |
確認指定的來源是否已被取消。 (繼承來源 DispatchSource) |
| Owns |
此類來源會定期呼叫目標佇列的事件處理器。 (繼承來源 DisposableObject) |
| TimerFiredCount |
自事件處理程序上次呼叫以來,計時器已觸發的次數 |
方法
擴充方法
| 名稱 | Description |
|---|---|
| GetHandle(INativeObject) |
此類來源會定期呼叫目標佇列的事件處理器。 |
| GetNonNullHandle(INativeObject, String) |
此類來源會定期呼叫目標佇列的事件處理器。 |