c# - 在特定时间开始任务
问题描述
我有一个派生自IHostedService
. 在这里,我有StartAsync
如下所示的覆盖方法:
public Task StartAsync(CancellationToken cancellationToken)
{
_timer = new Timer(DoSomething, null, offset, TimeSpan.FromHours(1));
return Task.CompletedTask;
}
在这里,我有 TimeSpan 类的变量偏移量。
我需要的:
我需要以这样的方式计算偏移量,即每一个小时开始执行任务“DoSomething”,例如:10:00、13:00、21:00 或 00:00。所以这个偏移量需要在几分钟内。
示例:假设应用程序在 开始运行13:48PM
,正确的偏移量是 12 分钟,下一个小时是14
。
我的问题: 我将如何计算以分钟为单位的偏移量,直到下一个小时?
解决方案
就像是
var minutes = (DateTime.Today.AddHours(DateTime.Now.Hour+1)-DateTime.Now).TotalMinutes
应该做的伎俩
推荐阅读
- null - 如何避免在 undefined vs null 时触发表单控件 valueChanges
- xml - 从符号数据开始构建 xades 信封
- c# - 如何在 docker 容器中的 Rider / Visual Studio 中运行测试
- javascript - 在 javascript 上使用 switch 语法函数
- javascript - 嵌套承诺的问题
- node.js - Node JS - 如何处理 UGC 以防止任何攻击/站点漏洞?
- java - 图像不会加载 JButton
- java - 在 Android (Java/Kotlin) 中将字符串日期转换为日期,而无需处理调用需要 API 级别 26
- node.js - 将图像缓冲区发送到前端并显示
- objectbox - 如何使用 ObjectBox Sync 在同一用户的多个设备之间进行同步?