为了锁定,我使用了一个对我的应用程序来说是全局的静态对象:
public class MvcApplication : System.Web.HttpApplication
{
public static readonly object AppLock = new object();
...
}
用它来锁定代码:
lock(MvcApplication.AppLock)
{
...
}
让我们暂时不考虑性能影响。我能 100% 确定在这种情况下我会避免死锁吗?
最佳答案
您不能仅使用一个锁对象 (AppLock) 来创建死锁条件,请参阅 http://en.wikipedia.org/wiki/Deadlock .但是在线程中使用这种代码是可能的
lock(A)
lock(B)
DoSomething();
lock(B)
lock(A)
DoSomething();
关于c# - 在 ASP.NET MVC 应用程序中锁定一个全局对象时是否可能出现死锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064296/