并不想使用其它的中间件(Quartz )需要定时执行简单的任务,可以考虑.Net 内置的后台任务 IHostedService
创建.NET Core 6 的控制台应用程序 引入包
Microsoft.Extensions.Hosting
Microsoft.Extensions.Hosting.Abstractions
运行结果,这里设置5秒执行一次
Program代码
public class Program { public static async Task Main(string[] args) { var builder = new HostBuilder() .ConfigureServices((hostContext, services) => { services.AddHostedService<TestHostedService>(); }); await builder.RunConsoleAsync(); } }
TestHostedService 任务类代码
public class TestHostedService : IHostedService, IDisposable { private Timer? _timer; public Task StartAsync(CancellationToken cancellationToken) { //此参数指定秒数,精确到最接近的毫秒 _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(5)); return Task.CompletedTask; } private void DoWork(object? state) { 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(); } }
本文来自博客园,作者:董锡振,转载请注明原文链接:https://www.cnblogs.com/dongxizhen/p/16457072.html