У меня есть класс, который управляет общим ресурсом. Теперь, поскольку доступ к ресурсу зависит от многих параметров, этот класс создается и удаляется несколько раз во время нормального выполнения программы.
Общий ресурс не поддерживает параллелизм, поэтому необходима некоторая блокировка. Первое, что мне пришло в голову, - это иметь статический экземпляр в классе и получить на него блокировки, например:
// This thing is static!
static readonly object MyLock = new object();
// This thing is NOT static!
MyResource _resource = ...;
public DoSomeWork() {
lock(MyLock) {
_resource.Access();
}
}
Имеет ли это смысл, или вы бы использовали другой подход?