【问题标题】:How to stop HostedService programmatically? [duplicate]如何以编程方式停止 HostedService? [复制]
【发布时间】:2019-11-22 17:00:54
【问题描述】:

我正在构建一个 dotnet 核心 HostedService 应用程序。一段时间后我需要停止申请。

我怎样才能阻止它?

我已经尝试添加到 StartAsync 方法

await Task.Delay(5000);
Environment.Exit(0);

主要:

static Task Main(string[] args)
{
    var hostBuilder = new HostBuilder()
        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService<EventsService>();
        })
        .UseLogging();

    return hostBuilder.RunConsoleAsync();
}

它不起作用。如何正确阻止它?

【问题讨论】:

    标签: c# asp.net-core asp.net-core-hosted-services


    【解决方案1】:

    RunConsoleAsync 接受CancellationToken。您可以创建一个CancellationTokenSource,在给定的毫秒数后发出取消信号:

    var cancellationTokenSource = new CancellationTokenSource(5000);
    
    return hostBuilder.RunConsoleAsync(cancellationTokenSource.Token);
    

    这样,应用程序会在大约五秒后关闭。

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 2011-10-31
      • 1970-01-01
      • 2011-04-20
      • 2010-10-07
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多