Операторы C # Lock

Когда поток пытается войти в критический раздел и получить блокировку, что он на самом деле делает?

] Я спрашиваю об этом, потому что я обычно создаю объект (типа object), который будет служить только для целей блокировки. Примите во внимание следующее: я хочу написать метод, который принимает коллекцию, и объект, который будет служить объектом блокировки, чтобы все манипуляции с коллекцией внутри этого метода были объявлены внутри критической секции, которая будет заблокирована данным объектом.

Должен ли я передать этот объект блокировки с помощью "ref" или достаточно передать ссылочную копию этого объекта? Другими словами - поскольку оператор блокировки используется только со ссылочными типами, проверяет ли механизм значение ссылочного объекта или значение указателя ? поскольку очевидно, что при передаче объекта без "ref" я получаю копию ссылки, а не саму ссылку.

9
задан Maniero 7 December 2014 в 04:25
поделиться