我有一个由多个线程共享的对象列表,它有时会在尝试时生成 IndexOutOfRangeException Clear
。在寻找解决方案时,我发现我应该在访问列表时使用 SyncLock。
但是我的问题是lockObject
,SyncLock
块中的重要性是什么,例如在清除myList
时我可以使用
Synclock myList
myList.Clear
End SyncLock
或 lockObject 应该与 myList 不同?
编辑:
我对 sysnclock 的看法是“为指定为 lockObject 的对象获得了锁”。如果我将要清除的列表指定为lockObject,编译器不应该在清除它之前获得对列表的独占访问权限吗?