注册服务
builder.Services.AddHostedService();
创建服务
TestHostedService.cs
namespace 定时任务
{
public class TestHostedService : IHostedService, IDisposable
{
private Timer? _timer;
public Task StartAsync(CancellationToken cancellationToken)
{
_timer = new Timer(DoWork, null, TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(5));
return Task.CompletedTask;
}
private void DoWork(object? state)
{
Console.WriteLine("这是任务a");
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss}");
}
public Task StopAsync(CancellationToken cancellationToken)
{
Console.WriteLine("StopAsync");
return Task.CompletedTask;
}
public void Dispose()
{
_timer?.Dispose();
}
}
}
测试
创建了两个定时任务服务,b每五秒执行一次,a五秒后才执行
参考
.NET Core 实现后台任务(定时任务)IHostedService(一) - 一事冇诚 - 博客园 (cnblogs.com)