我收到此错误: Hashtable插入失败。负载系数太高。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。
异常详细信息:System.InvalidOperationException:Hashtable插入失败。负载系数太高。
在我的代码中,我在字典中查找一个键,如果它不在那里我添加它。经过一些研究后,我认为上面的错误是因为我试图两次添加相同的密钥。
static Dictionary<string, string> settings =
new Dictionary<string, string>();
if ((!settings.ContainsKey(Key)) || (settings[Key] == null))
settings.Add(Key, AltValue);//Changes by Reliance Consulting
有更安全的方法吗?
谢谢!
答案 0 :(得分:3)
你没说什么框架,但我假设是.NET:
此错误几乎总是由 多线程修改 Hashtable同时。修复是 在修改之前插入锁 Hashtable,因为Hashtable不是 多个作家线程安全。
对于.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
答案 1 :(得分:0)
他们现在也有Windows Server 2003 x32 / x64的修复程序。