2017-02-17 9 views
2

На внутреннем сервере веб-API имеется несколько папок. Каждый из них представляет собой хранилище git. Давайте назовем ихНесколько независимых блокировок на нескольких объектах

  • Project1
  • Проект2
  • Project3

Как создать блокировку на сервере, так что только один пользователь (нить) в проекте может работать с определенной папке? В настоящее время я реализовал простую блокировку с использованием статического объекта и класса Monitor. Но в этом случае доступ к папкам блокируется на глобальном уровне, тогда как блокировка должна применяться к каждой папке независимо.

Какой инструмент потоковой передачи данных .NET был бы наиболее подходящим в моей ситуации?

ответ

2

Для блокировки в глобальном масштабе требуется Mutex.

Вы можете дать мьютекс глобально уникальный (на машине) имя, используя префикс «Global \» (К примеру "Global\\project1", "Global\\project2" и "Global\\project3") и посмотреть, если это используется кем-то другим.

Существует цельная нить о том, как правильно использовать один из here.

 Смежные вопросы

  • Нет связанных вопросов^_^