日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

.Net?6中的PeriodTimer介紹_ASP.NET

作者:TianFang ? 更新時間: 2022-03-26 編程語言

.net 6中新增了一個異步計時器PeroidTimer,相對普通Timer的回調, 它的模型更簡單。?

var ? ? ? second = TimeSpan.FromSeconds(3);
?using var timer ?= new PeriodicTimer(second);

while (await timer.WaitForNextTickAsync())
{
? ? Console.WriteLine($"Tick {DateTime.Now}");
}

關于WaitForNextTickAsync的處理策略,MSDN有點語焉不詳,我以前面代碼中這個周期為3s的Timer為例,

簡單測了下:

1. 執行時間小于Timer周期:

將每個任務執行時間調整到2s,查看輸出:

? ? Tick 2022/1/7 11:30:58
? ? Tick 2022/1/7 11:31:01
? ? Tick 2022/1/7 11:31:04

2. 執行周期大于Timer周期:

將每個任務執行時間調整到5s,查看輸出:

? ? Tick 2022/1/7 11:33:08
? ? Tick 2022/1/7 11:33:13
? ? Tick 2022/1/7 11:33:18
? ? Tick 2022/1/7 11:33:23

通過這兩個例子,可以總結出:

  • 當任務執行時間小于周期時,下次觸發的時間是上次觸發時間+周期
  • 當任務執行時間大于周期時,下次立即觸發

這個周期策略可以說時非常實用了,后續就用PeriodicTimer代替循環調用Task.Delay了

原文鏈接:https://www.cnblogs.com/TianFang/p/15777693.html

欄目分類
最近更新