gpt4 book ai didi

c# - ASP.NET Core线程中默认的IServiceProvider安全吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:53 26 4
gpt4 key购买 nike

我正在构建一个小型 ASP.NET Core 应用程序,该应用程序还有一堆在其自己的线程中运行的独立业务逻辑。我已经在副程序中使用了 IServiceProvider,所以当我发现 ASP.NET Core 也使用它自己的 IServiceProvider 时,我想我只能重新使用单个实例。

现在的问题是,虚拟主机使用的IServiceProvider是线程安全的吗?我的设置基本上是这样的

var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();

Task.Run(() => {
// here I access the IServiceProvider via `host.Services`
new Foo(host.Services).Run();
});

host.Run();

最佳答案

The default service provider implementation .您可以看到服务工厂存储在 ConcurrentDictionary 中和 building an expression for creating service object除第一个线程外,在单独的线程中执行。而且我确信这个表达式也是线程安全的(可能是无状态的)。所以默认的 ServiceProvider 是线程安全的。

关于c# - ASP.NET Core线程中默认的IServiceProvider安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45544907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com