私は独自のスレッドで動作する別々のビジネスロジックを持つ小さなASP.NETコアアプリケーションを構築しています。私はすでにIServiceProvider
をサイドプログラムに使用していました。そのため、ASP.NET Coreでも独自のIServiceProvider
を使用していることがわかったので、1つのインスタンスだけを再利用できると思いました。ASP.NETコアスレッドのデフォルト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();
リンクで質問に答えることができますが、コードのスニペットを含めると、あなたが何を証明しようとしているかが示されます。 – Nkosi