c# - HostedService 的多个实例

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

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

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

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

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

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

ExecuteAsync 在每一个上调用。

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

最佳答案

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

services.AddSingleton<IHostedService, MyService>();

参见 thisthis

关于c# - HostedService 的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66594888/

相关文章:

c# - 命名空间 'AzureAD' 中不存在类型或命名空间名称 'Microsoft.AspNetCore.Authentication'

c# - 停止应用程序时停止服务的顺序是什么

c# - Javascript SPA,使用 Hello.js 社交登录对用户进行身份验证,并从 ASPNET5 C# WebApi 后端验证 token

caching - 浏览器后退按钮不执行 Controller 方法

c# - 如何使用带有客户端证书的 (Microsoft.AspNetCore.TestHost)TestServer

c# - .net core 3.0,服务未使用 HostBuilder 注册以进行集成测试

c# - CA1822 : Mark members as static, 当用于不同的程序集时

c# - 如何区分电子邮件Imap中的内联图像和签名以及其他空白图像

c# - 统一处理众多异常

java - 为什么java和c#在简单加法上不同