Для блокировки я использую один статический объект, который является глобальным для моего приложения:
public class MvcApplication : System.Web.HttpApplication
{
public static readonly object AppLock = new object();
...
}
Использование его для блокировки в коде:
lock(MvcApplication.AppLock)
{
...
}
Давайте на минуту не будем рассматривать влияние на производительность. Могу ли я быть на 100% уверен, что в этом случае я буду избегать тупиковых ситуаций?