2

我正在构建一个 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();
}

它不起作用。我怎样才能正确地阻止它?

4

1 回答 1

2

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

var cancellationTokenSource = new CancellationTokenSource(5000);

return hostBuilder.RunConsoleAsync(cancellationTokenSource.Token);

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

于 2019-11-22T17:25:48.053 回答