在 .NET Core 3.1 (Console) 应用程序中,是否可以通过AddHostedService
并行添加来启动服务?
实际上我添加的两个服务似乎是在同步模式下启动的(一个接一个)我的代码如下:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host
.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, confBuilder) =>
{
confBuilder
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables();
})
.ConfigureServices((hostContext, services) =>
{
if (args.Contains(Args.Contoso))
{
services.AddHostedService(provider =>
new ContosoService(
provider.GetService<ILogger<ContosoService>>(),
provider.GetService<IContosoRepository>(),
mode));
}
// if there also Alonso in the list, make them run in parallel !
if (args.Contains(Args.Alonso))
{
services.AddHostedService(provider =>
new AlonsoService(
provider.GetService<ILogger<AlonsoService>>(),
provider.GetService<IAlonsoRepository>(),
mode));
}
});
知道这两种服务都是IHostedService
public class AlonsoService : IHostedService {...}
public class ContosoService : IHostedService {...}