【发布时间】:2011-11-09 11:23:23
【问题描述】:
对于锁定,我使用了一个对我的应用程序来说是全局的静态对象:
public class MvcApplication : System.Web.HttpApplication
{
public static readonly object AppLock = new object();
...
}
用它来锁定代码:
lock(MvcApplication.AppLock)
{
...
}
我们暂时不要考虑性能影响。在这种情况下,我能 100% 确定我会避免死锁吗?
【问题讨论】:
-
死锁的定义如下 L.B 所示。你确定这是你要防范的吗?如果不是,你需要避免什么情况?
-
我想使用这种技术来避免我的应用程序中出现任何类型的死锁。
-
当然,鉴于我的应用程序中的所有锁都只使用 MvcApplication.AppLock 对象。
-
那么我认为您不了解死锁。如果您要添加
lock来消除死锁,那么您不明白对于死锁,您需要从两个locks 开始。还是您在谈论 SQL Server 死锁,有什么不同? -
哦,很抱歉造成混乱。我的意思是我的 Web 应用程序中有不止一个锁块,实际上很多。我只是想确保它在任何情况下都不会死锁。是的,我的意思只是我在 asp.net mvc 项目中的 C# 代码,而不是 sql 死锁。
标签: c# asp.net-mvc asp.net-mvc-3 locking deadlock