c# - AddSingleton 与异步调用?

标签 c# asynchronous asp.net-core singleton .net-core

我添加了一个这样的单例。
在 Startup.cs 中,我添加了以下内容:

services.AddSingleton<MySingleton>();
我想像这样构建我的单例(当然这是不可能的):
public class MySingleton
{
    public MySingleton()
    {
        await InitAsync();
    }

    private async Task InitAsync()
    {
        await Stuff();
    }
}
如何在不造成死锁的情况下解决此问题?

最佳答案

据我所知,ASP.NET Core 中的配置不是异步的,因此无法使用异步工厂或类似方式添加服务。

正因为如此,考虑到如果只在应用程序启动时进行一次阻塞并不是什么大问题,我认为您应该在创建服务时进行阻塞。而且由于 ASP.NET Core 没有同步上下文,这也不会导致死锁。

关于c# - AddSingleton 与异步调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729956/

相关文章:

c++ - 如何在 C++ 中围绕异步回调创建同步包装器?

javascript - Node , Mongoose 'findOne' 在一个集合上,在另一个集合的 'find' 内

c# - 通过多个嵌套异步调用调试异常

azure - 如何使用 TFS 将 ASP.NET Core 2.0 部署到 Azure

docker - 无法访问 ASP.NET Core Docker 容器应用程序

c# - 仅在 VB 中的 .NET 集合

c# - 使用 memorystream 创建文件并保存到它

c# - .Net Core Web API 方法是否与 EF Core 查询异步

c# - 如何向 Iron Python 添加模块?

c# - WCF - 来自另一个程序集的服务契约(Contract)