У меня есть список объектов, совместно используемых несколькими потоками, он иногда генерирует IndexOutOfRangeException при попытке Clear
. При поиске решения я обнаружил, что должен использовать SyncLock при доступе к списку.
Но мой вопрос, каково значение lockObject
в SyncLock
блоке
например при очистке myList
могу ли я использовать
Synclock myList
myList.Clear
End SyncLock
или lockObject должен отличаться от myList?
Изменить:
Что я думаю о sysnclock, так это о том, что «блокировка получена для объекта, указанного как lockObject». Что если я укажу список для очистки как lockObject, не должен ли компилятор получить эксклюзивный доступ к списку перед его очисткой?