ASP.netcore中手动取消BackgroundService的方法是什么?
创始人
2024-09-18 16:30:16
0

在ASP.net core中,BackgroundService是一种基于HostedService的服务,它会在后台运行。有时候,我们会需要手动取消BackgroundService的运行,而不是等待它自己终止。以下是一种手动取消BackgroundService的方法:

1.定义一个BackgroundService的子类,重写ExecuteAsync()方法:

public class MyBackgroundService : BackgroundService { private readonly ILogger _logger;

public MyBackgroundService(ILogger logger)
{
    _logger = logger;
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    _logger.LogInformation("MyBackgroundService is starting.");

    while (!stoppingToken.IsCancellationRequested)
    {
        _logger.LogInformation("MyBackgroundService is running.");
        await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
    }

    _logger.LogInformation("MyBackgroundService is stopping.");
}

}

2.在Startup.cs的ConfigureServices()方法中注册MyBackgroundService:

services.AddHostedService();

3.在需要手动取消MyBackgroundService的地方,注入IHostedService,然后调用Cancel()方法即可取消:

public class SomeController : Controller { private readonly IHostedService _hostedService;

public SomeController(IHostedService hostedService)
{
    _hostedService = hostedService;
}

public IActionResult CancelService()
{
    var backgroundService = _hostedService as MyBackgroundService;
    if (backgroundService != null)
    {
        backgroundService.StopAsync(CancellationToken.None).Wait();
        return Ok("MyBackgroundService is cancelled.");
    }

    return BadRequest("MyBackgroundService is not found.");
}

}

以上代码示例演示了如何手动取消ASP.net core中的BackgroundService。通过继承BackgroundService并重写ExecuteAsync()方法实现后台服务的逻辑,通过IHostedService注入并调用StopAsync()方法来手动取消服务的运行。

相关内容

热门资讯

四分钟普及!微扑克wpk(辅助... 四分钟普及!微扑克wpk(辅助挂)透视辅助((2024已更新))(哔哩哔哩)是一款可以让一直输的玩家...
推荐攻略!wpk俱乐部怎么盈利... 推荐攻略!wpk俱乐部怎么盈利!确实真的有挂((2022已更新))(哔哩哔哩)1、让任何用户在无需A...
我来教教你!皮皮麻将有什么规律... 我来教教你!皮皮麻将有什么规律吗(辅助挂)原来真的有挂(有挂教学)-哔哩哔哩;支持多人共享记分板与复...
透视数据!雀神麻将插件激活码(... 透视数据!雀神麻将插件激活码(辅助挂)原来真的有挂(有挂辅助)-哔哩哔哩;人气非常高,ai更新快且高...
6分钟实锤!扑克世界辅助(辅助... 6分钟实锤!扑克世界辅助(辅助挂)辅助透视((2021已更新))(哔哩哔哩),您好,扑克世界这款游戏...
必备科技!微扑克wpk辅助软件... 必备科技!微扑克wpk辅助软件!果真真的有挂((2021已更新))(哔哩哔哩)是一款可以让一直输的玩...
透视美元局!广东雀神挂件去哪买... 透视美元局!广东雀神挂件去哪买(辅助挂)竟然真的有挂(有挂存在)-哔哩哔哩准备好在广东雀神挂件去哪买...
实测教程!福建旺旺麻将有挂吗(... 实测教程!福建旺旺麻将有挂吗(辅助挂)果真是真的有挂(确实有挂)-哔哩哔哩是一款可以让一直输的玩家,...
2分钟了解!微扑克透明挂(透视... 1、2分钟了解!微扑克透明挂(透视)辅助透视((2023已更新))(哔哩哔哩);该软件可以轻松地帮助...
十分钟了解!星悦跑胡子有挂吗(... 这是一款非常优秀的星悦跑胡子有挂吗 ia辅助检测软件,能够让你了解到星悦跑胡子有挂吗中牌率当中全部隐...