Я работаю над веб-приложением на C # / ASP.NET, и у меня есть несколько ситуаций, когда мне нужно сделать блокировку. В идеале я хочу, чтобы замки действовали независимо, поскольку они не имеют ничего общего друг с другом. Я рассматривал [MethodImpl(MethodImplOptions.Synchronized)]
и несколько способов использования lock()
, но у меня есть несколько вопросов / проблем.
Похоже, что MethodImplOptions.Synchronized will essentially do
lock (this) `. В этом случае кажется, что поток, входящий в любой синхронизированный метод, заблокирует все остальные потоки от ввода любого синхронизированного метода. Это правильно? Если так, это не достаточно детально. В этот момент кажется, что я также могу использовать Application.Lock. (Но, пожалуйста, поправьте меня, если я ошибаюсь.)
Что касается lock()
, я пытаюсь выяснить, что мне следует передать. Должен ли я создать набор объектов исключительно для этой цели и использовать каждый из них для отдельной блокировки? Есть ли лучший способ?
Заранее спасибо!