HostedService 的多个实例

Multiple Instances of HostedService

我想 运行 同一托管服务的多个实例。我尝试注册了两次:

services.AddHostedService<MyService>();
services.AddHostedService<MyService>();

但 ExecuteAsync 仅在一个实例上被调用。

但是如果我有两个不同的服务:

services.AddHostedService<MyServiceA>();
services.AddHostedService<MyServiceB>();

对每个调用 ExecuteAsync。

有没有办法运行同一个实例两次?我本质上想让两个工人服务做同样的事情。

现在 .net core 中的行为发生了变化,AddHostedService 现在添加了一个 Singleton 而不是 Transient 服务。 所以你可以试试这个:

services.AddSingleton<IHostedService, MyService>();

and this