ASP.NET Core 7项目启动的时候自动启动 十个定时任务 每隔200ms执行一次 持续执行24小时
时间: 2024-04-13 22:29:53 浏览: 205
Asp.Net(C#)自动执行计划任务的程序实例分析分享
在ASP.NET Core 7项目中,你可以使用`System.Threading.Timer`类来实现定时任务的调度。下面是一个示例代码,可以在项目启动时自动启动十个定时任务,并且每隔200毫秒执行一次,持续执行24小时。
```csharp
using System;
using System.Threading;
using System.Threading.Tasks;
public class Startup
{
private Timer[] timers;
public void ConfigureServices()
{
// 在ConfigureServices方法中初始化定时任务
timers = new Timer[10];
for (int i = 0; i < timers.Length; i++)
{
int taskId = i;
timers[i] = new Timer(ExecuteTask, taskId, TimeSpan.Zero, TimeSpan.FromMilliseconds(200));
}
}
public void ExecuteTask(object state)
{
int taskId = (int)state;
// 执行定时任务的逻辑
Console.WriteLine($"Task #{taskId} executed at {DateTime.Now}");
}
public async Task RunAsync()
{
// 在RunAsync方法中持续执行任务,直到达到指定时间
await Task.Delay(TimeSpan.FromHours(24));
// 停止所有定时任务
foreach (var timer in timers)
{
timer.Dispose();
}
}
}
```
在你的`Program.cs`文件中,可以将`Startup`类的`ConfigureServices`方法和`RunAsync`方法添加到`CreateHostBuilder`方法中:
```csharp
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
```
这样,在ASP.NET Core 7项目启动时,定时任务将会自动启动,并且按照指定的时间间隔执行。
阅读全文