Name Space | System.Threading | System.Timers | System.Windows.Forms | System.Windows.Threading |
類別 Class | Timer | Timer | Timer | DispatcherTimer |
屬性 Properties | 1. ActiveCount | 1. AutoReset 2. Enabled 3. Interval 4. Site 5. SynchronizingObject | 1. Enabled 2. Interval 3. Tag | 1. Dispatcher 2. Interval 3. IsEnabled 4. Tag |
方法 Methods | 1. Change 2. Dispose 3. DisposeAsync | 1. BeginInit 2. Close 3. Dispose 4. EndInit 5. Start 6. Stop | 1. Dispose 2. OnTick 3. Start 4. Stop 5. ToString | 1. Start 2. Stop |
事件 Events | 1. Elapsed | 1. Tick | 1. Tick | |
適用版本(.Net Framework) | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
組件 Assembly | mscorlib.dll | System.dll | System.Windows.Forms.dll | WindowsBase.dll |
可繼承性 | 不可 | 可 | 可 | 可 |
是否與 UI 同一執行緒 | 否 用 delegate 或 Dispatcher | 否 用 SynchronizingObject 或 Dispatcher | 是 | 是 整合進 Dispatcher 佇列中 |
計時器解析度 Resolution | 毫秒 15.6 ms OS時間精度,此處參考Win7/Win8 | 毫秒 15.6 ms OS時間精度,此處參考Win7/Win8 | 毫秒 55 ms | 毫秒 15.6 ms OS時間精度,此處參考Win7/Win8 |
使用方式 | 回調委託(建構時指定,無法改變) | 訂閱 Elapsed 事件 | 訂閱 Tick 事件 | 訂閱 Tick 事件 |
執行任務時間>間隔時間 | 1. 依循先觸發先完成,但會同時好幾個觸發任務在執行 2. 觸發間隔時間到即執行 3. 因觸發間隔太短會造成已觸發的多個執行緒無法同時停止 | 1. 依循先觸發先完成,但會同時好幾個觸發任務在執行 2. 基本觸發間隔時間到就執行,但ThreadPool執行緒數量達上限則會影響 3. 同時執行的觸發任務數量受執行緒池的數量限制 4. 當SynchronizingObject非null且有指定執行緒上觸發事件,執行效果與System.Windows.Forms相同(單執行緒) | 1. 後觸發任務先執行待後任務執行完畢再執行前任務 2. 觸發間隔時間到即觸發新執行任務 3. 會有 UI 卡頓感 | 1. 每次觸發任務一定執行完畢才開始計算間隔時間 2. 間隔時間會因未完成觸發任務往後推遲 3. 會有 UI 卡頓感 |
歡迎光臨 冰楓論壇 (https://bingfong.com/) | Powered by 冰楓 |