c# - 添加到 Hashset<T> 时出现 IndexOutOfRangeException

标签 c# .net hashset

我有一个简单的应用程序,它向 HashSet 添加大约 700 万个短字符串 <string> .有时我在调用 Hashset.Add() 期间遇到异常:System.Collections.Generic.HashSet`1.IncreaseCapacity():索引超出数组范围。

这是一个间歇性的问题,似乎与内存有关,但这是在 16 GB 的 win2k8 R2 服务器上,没有太多其他事情发生,大部分物理内存都可用。有什么想法吗?

最佳答案

HashSet<T>不是线程安全的。特别是在多线程场景中添加项目并且必须增加内部容量时,事情可能会不同步。

关于c# - 添加到 Hashset<T> 时出现 IndexOutOfRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307131/

相关文章:

Java HashSet 保留第一个和最后一个元素

c# - 从 C++ COM DLL 回调到 C# 应用程序

c# - 使用 ResolveClientUrl asp.net 下载 jquery 文件的问题

c# - 如果条件无法达到,这怎么办?

java - 空指针异常 : null error

java - 为什么 HashSet 的名称中有 "Hash"?

c# - INSERT 存储过程不接受空值

c# - 将随机方法作为参数传递?

c# - 如何重新启动线程或任何其他替代解决方案

c# - PowerShell 3 未随 .NET Framework 4.51 安装