如何使用Asp.net Core实现定时任务

在项目中添加以下NuGet包:

  • Microsoft.Extensions.Hosting.Abstractions
  • Microsoft.Extensions.Hosting

添加定时任务

services.AddHostedService<MyTimer>();

实现IHostedService接口

public class StockAgeTimer : IHostedService, IDisposable
{
    bool isStartup = false;
    private readonly Timer _timer;
    public StockAgeTimer()
    {
        _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromHours(1));
    }
    public Task StartAsync(CancellationToken cancellationToken)
    {
        return Task.CompletedTask;
    }
    public Task StopAsync(CancellationToken cancellationToken)
    {
        return Task.CompletedTask;
    }
    public void Dispose()
    {
        _timer?.Dispose();
    }
    private async void DoWork(object state)
    {
        if (isStartup)
        {
            using (var client = new HttpClient())
            {
                try
                {
                    //执行代码
                }
                catch (Exception ex)
                {

                }
            }
        }
        else isStartup = true;
    }
}

  

 

posted @ 2025-11-22 15:08  microsoft-zhcn  阅读(4)  评论(0)    收藏  举报