IHostedService 总是创建两个进程

IHostedService always create two processes

我正在编写一个 HostedService 并且总是在我 运行 它时,它创建了两次要执行的进程(我检查了日志并且有两个几乎同时应该是 5 secondos each)我已经遵循了官方文档。

https://docs.microsoft.com/es-es/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-2.2&tabs=visual-studio

这是我的 HostedService 的示例

internal class TimedHostedService : IHostedService, IDisposable
{
    private readonly ILogger _logger;
    private Timer _timer;

    public TimedHostedService(ILogger<TimedHostedService> logger)
    {
        _logger = logger;
    }

    public Task StartAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("Timed Background Service is starting.");

        _timer = new Timer(DoWork, null, TimeSpan.Zero, 
            TimeSpan.FromSeconds(5));

        return Task.CompletedTask;
    }

    private void DoWork(object state)
    {
        _logger.LogInformation("Timed Background Service is working.");
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("Timed Background Service is stopping.");

        _timer?.Change(Timeout.Infinite, 0);

        return Task.CompletedTask;
    }

    public void Dispose()
    {
        _timer?.Dispose();
    }
}

我添加如下服务:

services.AddHostedService<TimedHostedService>();

您应该得到两个不同的线程,Host 和 HostedService,它们可能会显示为同一进程 运行 两次,具体取决于 OS 和用于检查 运行 的应用程序进程。