【问题标题】:.net Hashtable insert failed. Load factor too high.net 哈希表插入失败。负载系数太高
【发布时间】:2011-01-10 05:00:25
【问题描述】:

我收到此错误: 哈希表插入失败。负载系数太高。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:哈希表插入失败。负载系数太高。

在我的代码中,我会在字典中查找一个键,如果它不存在,我会添加它。经过一番研究,我认为上述错误是因为我试图添加相同的密钥两次。

static Dictionary<string, string> settings = new Dictionary<string, string>();

 if ((!settings.ContainsKey(Key)) || (settings[Key] == null)) 
            settings.Add(Key, AltValue);//Changes by Reliance Consulting

有没有更安全的方法来做到这一点?

谢谢!

【问题讨论】:

  • 是的,.Net 3.5 是框架

标签: .net multithreading dictionary


【解决方案1】:

你没有说什么框架,但我假设是 .NET:

这个错误几乎总是由 多个线程修改 同时哈希表。修复是 在修改之前插入锁 哈希表,因为哈希表不是 多写线程安全。

对于 .NET 2.0 ASP.NET 环境,有一个热修复程序可以解决您的问题: FIX: A System.InvalidOperationException exception occurs when you run a Web application that is based in the .NET Framework 2.0 SP2 or in the .NET Framework 3.5 SP1

【讨论】:

    【解决方案2】:

    他们现在还修复了 Windows Server 2003 x32/x64。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2010-12-25
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 2015-06-25
      • 2017-03-28
      相关资源
      最近更新 更多