[英]Timer.Tick event handler not getting event Timer_Tick in Timer
[英]Precise timer with event similar to Timer.Tick
我正在為游戲做一個簡單的高分插件。 為此,我需要一個精確的計時器,從中可以在標簽中顯示經過的時間。 到目前為止,我已經嘗試了以下方法:
Windows.Forms.Timer:不保持高分辨率間隔,有些速度較慢,有些速度較快。
System.Diagnostics.Stopwatch:無滴答事件。
我還想到了實現低分辨率的Forms.Timer。 然后,當計時器啟動和停止時,我將存儲系統時間並減去它們即可得出經過的時間。 但是我不想使事情復雜化。 有任何想法嗎?
從現在開始使用經過的時間。 比以下任何一個:
我認為使用Stopwatch
(高分辨率)和低分辨率Windows.Forms.Timer
組合不會太復雜。
Stopwatch
使用非常簡單,因此使用Timer
也不會增加太多復雜性。
(這假定您可以使用高分辨率的經過時間顯示,但使用較低的分辨率更新間隔。)
如果您願意接受依賴關系,則可以使用反應性擴展 (Rx)來獲取計時器:
var timer = Observable.Interval(TimeSpan.FromMilliseconds(15))
.Subscribe(() => /* handler */ );
Rx將確保在創建訂閱的同一線程上調用該處理程序,並且在其后台使用System.Threading.Timer,因此它具有很高的分辨率和一致的分辨率。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.