Asp.net mvc ASP.NETMVC中的Ninject单例绑定

Asp.net mvc ASP.NETMVC中的Ninject单例绑定,asp.net-mvc,singleton,ninject,Asp.net Mvc,Singleton,Ninject,在MVC应用程序中使用Singleton作用域时,当一个线程已经在调用我的Singleton对象上的方法时,是否会阻止其他线程访问我的Singleton对象 我有一个绑定在singleton范围内的存储库。如果多个用户访问一个使用存储库从数据库中获取数据的页面,这是否意味着在获取singleton实例的第一个线程完成其工作之前,第二个线程无法获取singleton实例 在这种情况下,如果我的存储库需要2-3秒从数据库加载数据,这是否意味着另一个线程正在等待获取这个单例对象 谢谢否。Ninject

在MVC应用程序中使用Singleton作用域时,当一个线程已经在调用我的Singleton对象上的方法时,是否会阻止其他线程访问我的Singleton对象

我有一个绑定在singleton范围内的存储库。如果多个用户访问一个使用存储库从数据库中获取数据的页面,这是否意味着在获取singleton实例的第一个线程完成其工作之前,第二个线程无法获取singleton实例

在这种情况下,如果我的存储库需要2-3秒从数据库加载数据,这是否意味着另一个线程正在等待获取这个单例对象


谢谢

否。Ninject只确保每个人都得到相同的对象。处理对对象的并发访问是您(或对象的实现)的责任

但是,如果singleton的构造函数需要很长时间,那么实例化将作为构造函数参数注入singleton的第一个对象将需要很长时间

在构造函数中使用代价高昂(长期运行)的代码通常是不可取的