.NET 6 引入了PeriodicTimer.
我需要每分钟、每分钟都做点什么。例如:09:23:00,09:24:00,09:25:00, ...
但在一分钟的时间内 -new PeriodicTimer(TimeSpan.FromMinutes(1))从 开始09:23:45,我将在以下位置得到“刻度”:09:24:45, 09:25:45, 09:26:45, ...
所以这取决于开始时间。
我的解决方法是使用一秒周期,并检查当前时间的秒数是否等于0。另一种解决方法是等待下一分钟,然后启动计时器。这两种方法都有效,但都很繁琐,并且使用的分辨率太精细。
是否有内置或更好的方法在每分钟结束时触发而不是在开始后一分钟触发?
我在用着
using PeriodicTimer timer = new(_period);
while (!stoppingToken.IsCancellationRequested
&& await timer.WaitForNextTickAsync(stoppingToken))
{
await DoWork();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法_period动态设置?即以数据库的该时段为例。