Как использовать несколько переменных для блокировки Scope в C #

У меня есть ситуация, когда блок кода должен выполняться только в том случае, если два объекта locker свободны.

Я надеялся, что будет что-то вроде:

lock(a,b)
{
    // this scope is in critical region
} 

Однако, похоже, ничего подобного нет. Значит ли это, что единственный способ сделать это:

lock(a)
{
    lock(b)
    {
        // this scope is in critical region
    }
}

Будет ли это даже работать, как ожидалось? Хотя код компилируется, но я не уверен, достигнет ли он того, чего ожидаю.

Ответы на вопрос(3)

Ваш ответ на вопрос