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# - KeyBinding 用作 UserControl,但在 XAML 中使用属性元素语法时不起作用

gwt - 解耦 GWT 异步回调

javascript - 如何在另一个类中模拟异步函数调用

asp.net-core - 使用内置身份服务器在 asp net core 3.0 中添加和访问声明

c# - 如何在 ASP.NET Core 中返回 403 Forbidden 响应作为 IActionResult

c# - DirectX9 中的简单 HLSL 发光/模糊效果

c# - 以 WebAPI 和 MVC 作为客户端架构的 Restful 服务

java - hibernate 'open session in view' 和异步任务

asp.net-core - 如何在 ASP.NET Core 中检索 Controller 类型?