Когда поток пытается войти в критическую секцию и получить блокировку, что он на самом деле делает?
Я спрашиваю об этом, потому что обычно создаю объект (типа объекта), который будет служить только для целей блокировки. Рассмотрим следующее: я хочу написать метод, который принимает коллекцию, и объект, который будет служить в качестве объекта блокировки, поэтому все манипуляции с коллекцией внутри этого метода будут объявлены внутри критической секции, которая будет заблокирована этим данным объектом.
Должен ли я передать этот блокирующий объект, используя «ref», или достаточно передать ссылочную копию этого объекта? Другими словами, поскольку оператор блокировки используется только со ссылочными типами, проверяет ли механизм значение объекта, на который указывает ссылка, или он проверяет значение указателя? потому что очевидно, что при передаче объекта без "ref" я фактически получаю копию ссылки, а не саму ссылку.