.Net 6中的PeriodTimer介绍
程序员文章站
2022-03-06 09:39:26
.net 6中新增了一个异步计时器peroidtimer,相对普通timer的回调, 它的模型更简单。var second = timespan.fromseconds(3); using...
.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了
。
到此这篇关于.net 6
中的periodtimer
介绍的文章就介绍到这了,更多相关.net 6中的periodtimer内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
详解免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)
-
关于.NET动态代理的介绍和应用简介
-
详解最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
-
详解高效而稳定的企业级.NET Office 组件Spire(.NET组件介绍之二)
-
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
-
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
-
详解开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)
-
.net应用程序的配置介绍及基本配置方法(一)
-
asp.net Repeater控件的说明及详细介绍及使用方法
-
ASP.NET Core 2.1 中的 HttpClientFactory (Part 1) - HttpClientFactory介绍