超出System.Collections.Generic.List.Add(Object)的索引错误

时间:2009-06-06 11:51:32

标签: .net collections

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

Dim myObj As New MyObject
Dim List As New List(Of MyObject)
List.Add(myObj)

错误信息是这些(从我的系统语言翻译):
“索引矩阵索引”
“矩阵起源不够长”
“验证矩阵的srcIndex,大小和下限”

.NET不应该自动调整List的大小吗?

我无法复制此错误。它发生在一系列的操作中 这是在线程中运行,但每个线程都有自己的List 我在列表上尝试过SyncLock,但没有任何影响。

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

1 个答案:

答案 0 :(得分:0)

这听起来像是一个并发问题,.Net会在达到容量时自动调整底层数组的大小。

.Net集合不是线程安全的(即将在.NET的下一个版本中出现)

你是否锁定以及套装?如果是这样它应该工作。如果你想要想象的话,你也可以看看读写器锁。