首页 > 解决方案 > 在特定时间开始任务

问题描述

我有一个派生自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

我的问题: 我将如何计算以分钟为单位的偏移量,直到下一个小时?

标签: c#.net

解决方案


就像是

var minutes = (DateTime.Today.AddHours(DateTime.Now.Hour+1)-DateTime.Now).TotalMinutes

应该做的伎俩


推荐阅读