繁体   English   中英

在 C# 中的 List.Add() 上出现“索引越界”错误

[英]Got “Index out of bounds” Error on List.Add() in c#

这是代码

List<string> something = new List<string>();
Parallel.ForEach(anotherList, r =>
     {
            .. do some work
             something.Add(somedata);
      });

我每百次运行大约 1 次得到Index out of bounds错误。 有没有办法防止线程引起的冲突(我假设)?

为了防止出现此问题,您可以在并行部分使用ConcurrentQueue或类似的 Concurrent 集合而不是 List。 并行任务完成后,您可以将其放入List<T>

有关更多信息,请查看 System.Collections.Concurrent 命名空间以找到适合您的用例的集合。

我发现lock (yourObject)也否定了线程问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM