在ASP.NET MVC应用程序中锁定一个全局对象时是否可能出现死锁?

Evg*_*nii 4 c# asp.net-mvc deadlock locking asp.net-mvc-3

对于锁定,我使用的是一个对我的应用程序来说是全局的静态对象:

public class MvcApplication : System.Web.HttpApplication
{        
    public static readonly object AppLock = new object();
    ...
}
Run Code Online (Sandbox Code Playgroud)

用它来锁定代码:

lock(MvcApplication.AppLock)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我们暂时不要考虑性能影响.在这种情况下,我能100%确定能避免死锁吗?

L.B*_*L.B 12

您无法使用一个锁定对象创建死锁条件(AppLock)请参阅http://en.wikipedia.org/wiki/Deadlock.但是有可能在线程中使用这种代码

lock(A)
   lock(B)
       DoSomething();


lock(B)
   lock(A)
       DoSomething();
Run Code Online (Sandbox Code Playgroud)