ToB企服应用市场:ToB评测及商务社交产业平台
标题:
ASP.NET Core 增长背景定时托管任务
[打印本页]
作者:
用户云卷云舒
时间:
2024-6-24 02:44
标题:
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();
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4