91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c# backgroundservice怎樣處理任務

c#
小樊
84
2024-11-18 12:28:07
欄目: 編程語言

在C#中,BackgroundService是用于在后臺執行長時間運行任務的類,例如:定時清理緩存、發送電子郵件等。要使用BackgroundService處理任務,請按照以下步驟操作:

  1. 首先,創建一個繼承自BackgroundService的類:
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;

public class MyBackgroundService : BackgroundService
{
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            // 在這里執行您的任務
            await Task.Delay(1000); // 示例:等待1秒
        }
    }
}
  1. Startup.csProgram.cs中注冊MyBackgroundService
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // 注冊 BackgroundService
        services.AddHostedService<MyBackgroundService>();
    }
}

或者

public class Program
{
    public static async Task Main(string[] args)
    {
        // 創建并啟動 HostBuilder
        var host = new HostBuilder()
            .ConfigureServices((context, services) =>
            {
                // 注冊 BackgroundService
                services.AddHostedService<MyBackgroundService>();
            })
            .Build();

        // 啟動 Host
        await host.RunAsync();
    }
}
  1. 若要處理任務的中斷,可以在ExecuteAsync方法中檢查stoppingToken.IsCancellationRequested
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    while (!stoppingToken.IsCancellationRequested)
    {
        // 在這里執行您的任務

        // 檢查是否需要取消任務
        if (stoppingToken.IsCancellationRequested)
        {
            break;
        }

        await Task.Delay(1000); // 示例:等待1秒
    }
}
  1. 若要在應用程序關閉時優雅地停止BackgroundService,可以在Program.csMain方法中調用host.WaitForShutdownAsync()
public static async Task Main(string[] args)
{
    // 創建并啟動 HostBuilder
    var host = new HostBuilder()
        .ConfigureServices((context, services) =>
        {
            // 注冊 BackgroundService
            services.AddHostedService<MyBackgroundService>();
        })
        .Build();

    // 啟動 Host
    await host.RunAsync();

    // 等待應用程序關閉
    await host.WaitForShutdownAsync();
}

現在,您的MyBackgroundService將在后臺運行,并在需要時處理任務中斷和應用程序關閉。

0
彭泽县| 灌云县| 聊城市| 买车| 辽源市| 永吉县| 文安县| 洛浦县| 海安县| 若尔盖县| 哈尔滨市| 永善县| 南陵县| 唐河县| 六盘水市| 阿尔山市| 南昌市| 郓城县| 滁州市| 沛县| 东宁县| 利津县| 滕州市| 如皋市| 天台县| 临汾市| 赫章县| 山丹县| 什邡市| 嘉荫县| 镇沅| 靖远县| 广宗县| 盈江县| 宿松县| 威远县| 房产| 泸定县| 镇坪县| 松江区| 从化市|