.net System.Collections.Generic.List.Add(对象)上的索引不足错误

.net System.Collections.Generic.List.Add(对象)上的索引不足错误,.net,collections,.net,Collections,向System.Collections.Generic.List添加对象时出现索引外错误 Dim myObj As New MyObject Dim List As New List(Of MyObject) List.Add(myObj) 错误消息如下(翻译自我的系统语言): “矩阵索引外的索引” “矩阵原点不够长” 验证矩阵的索引、大小和下限 NET不应该自动调整列表的大小吗 我无法复制这个错误。它在百分之一百的操作中发生一次。 这在线程中运行,但每个线程都有自己的列表。 我尝试了列表上的

向System.Collections.Generic.List添加对象时出现索引外错误

Dim myObj As New MyObject
Dim List As New List(Of MyObject)
List.Add(myObj)
错误消息如下(翻译自我的系统语言):
“矩阵索引外的索引”
“矩阵原点不够长”
验证矩阵的索引、大小和下限

NET不应该自动调整列表的大小吗

我无法复制这个错误。它在百分之一百的操作中发生一次。
这在线程中运行,但每个线程都有自己的列表。
我尝试了列表上的同步锁,但没有任何效果


任何人都知道会出现什么问题以及如何避免它?

这听起来像是并发问题,.Net会在底层阵列达到容量时自动调整其大小

.Net集合不是线程安全的(将在下一版本的.Net中提供)


你是不是既锁定目标又锁定目标?如果是这样的话,它应该会起作用。如果你想变得有趣,你也可以看看readerwriter锁

您确定没有任何线程间通信,其中一个线程最终修改了另一个线程的列表吗?我认为这只是以线程不安全的方式访问列表的结果。应该补充的是,
list
在.net的net版本中仍然不是线程安全的,但是有全新的集合类: