冰楓論壇

 找回密碼
 立即註冊
ads_sugarbook
搜索
查看: 923|回覆: 0
打印 上一主題 下一主題

[心得] [C#] C#(WPF)四種計時器類別

[複製鏈接]

628

主題

0

好友

773

積分

高級贊助會員

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

UID
390967
帖子
1201
主題
628
精華
0
積分
773
楓幣
7178
威望
316
存款
4100
贊助金額
1800
推廣
0
GP
1646
閱讀權限
150
在線時間
143 小時
註冊時間
2023-5-18
最後登入
2024-5-6

2023年紀念勳章 太陽勳章 神手勳章 高級客戶 VIP會員 私服達人 懶人勳章 幼兒勳章 音樂勳章 屁孩勳章 貢獻王 性別(女) 性別(男) 積分勳章 發帖達人 2023端午節紀念勳章 富豪勳章 富可敵國 2023中秋節紀念勳章 解說達人 論壇粉絲 2023聖誕節紀念勳章 2024年紀念勳章

跳轉到指定樓層
1
發表於 2023-5-30 15:48:48 |只看該作者 |倒序瀏覽
整理一下自己歸類好的幾個常用計時器 Timer
還是要看使用場景才能決定使用哪種計時器,建議不要在計時器執行負載過重吃效能的工作,這類功能應該放到執行緒(Thread/TPL)
Name  SpaceSystem.ThreadingSystem.TimersSystem.windows.FormsSystem.Windows.Threading
類別 ClassTimerTimerTimerDispatcherTimer
屬性 Properties1. ActiveCount1. AutoReset
    2. Enabled
    3. Interval
    4. Site
    5. SynchronizingObject
1. Enabled
    2. Interval
    3. Tag
1. Dispatcher
    2. Interval
    3. IsEnabled
    4. Tag
方法 Methods1. 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
事件 Events1. Elapsed1. Tick1. 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.81.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.81.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.13.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
組件 Assemblymscorlib.dllSystem.dllSystem.Windows.Forms.dllWindowsBase.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 卡頓感

收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1骰子
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們職位招聘本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-5-6 05:29

回頂部