我正在使用 .net 3.5 数据表并从多个线程向数据表添加行。当不使用锁时,我得到 datatablr 行数和最大索引之间的不匹配。尝试序列化表时出现异常there is no rows at poitions X
。当然我可以锁定数据表,但我想知道是什么原因。我希望该row.count()
方法基于行最大索引 +1 返回,而不是具有非独立计数器。另外,我在哪里可以找到rows.Add
(params) 方法的内部实现?即使在某些情况下添加在同一行上,每次添加似乎计数器都会增加。
编辑:感谢您的评论。我确实知道它不是线程安全的写入并且已经通过在同步根对象上使用锁定来解决它。我想看看 add 方法内部发生了什么,看看计数在哪里搞砸了。