您的位置:首页 > 财经 > 产业 > ASP.NET Core 增加后台定时托管任务

ASP.NET Core 增加后台定时托管任务

2024/10/6 16:17:16 来源:https://blog.csdn.net/waynesxia/article/details/139349296  浏览:    关键词:ASP.NET Core 增加后台定时托管任务

项目:ASP.NET Core MVC 7.0

简述:

主要创建一个继承BackgroundService类的对象,配合一个定时器,在主程序启动后在后台运行。

1、在项目中创建执行任务的类文件,继承 BackgroundService

public class TestTask : BackgroundService
{private Timer? _timer;   //定时器/// <summary>/// 启动后台托管/// </summary>/// <param name="stoppingToken"></param>/// <returns></returns>protected override Task ExecuteAsync(CancellationToken stoppingToken){//通过定时器执行具体任务的方法,并设置周期时间_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(10));return Task.CompletedTask;}/// <summary>/// 执行任务,具体的内容/// </summary>/// <param name="state"></param>private void DoWork(object state){//在控制台显示时间Console.Clear();Console.WriteLine("继续执行:" + DateTime.Now.ToLongTimeString());//满足某个条件,自销毁后台任务if (DateTime.Now.Minute>21){Console.WriteLine("最后执行:" + DateTime.Now.ToShortTimeString());Dispose(); //消耗动作。然后不再执行}    }/// <summary>/// 销毁,释放资源/// </summary>public override void Dispose(){_timer?.Dispose();  //如果_timer对象不为null,则销毁base.Dispose();}}

2、在项目启动文件注册任务类 (Program.cs)

//......其他注册
builder.Services.AddHttpContextAccessor();
builder.Services.AddRazorPages();//这一行就是注册后台任务
builder.Services.AddHostedService<TestTask>();var app = builder.Build();
//......其他注册app.Run();

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com