РЕДАКТИРОВАТЬ: Как выясняется, когда я просматривал, я нашел вопрос, кажется, тот же, что и мой, который я не нашел ранее: Разница между блокировкой (locker) и блокировкой (variable_which_I_am_using)
Я смотрю какой-то код и пытаюсь обойти блокирующую штуку, и я думаю, что получаю.
Теперь я заметил, что в некотором коде, который я проверяю, объект создается так:
private HashSet<Graphic> clustersInUse = new HashSet<Graphic>();
Тогда далее в коде используется так:
lock (clustersInUse)
{
// Do something with the Hashset
}
Теперь, есть проблема с этим, а не с созданием конкретного объекта для блокировки. Как это:
private object clusterLocker = new object();
Что произойдет, если clustersInUse
, описанный выше, каким-то образом станет публичной собственностью, что произойдет?
Кроме того, если что-то попытается получить доступ к clustersInUse
, не блокируя его, пока оно заблокировано в другом потоке, что произойдет тогда?