Ошибка вставки .net Hashtable. Коэффициент загрузки слишком высокий - PullRequest
1 голос
/ 28 января 2010

Я получаю эту ошибку: Не удалось вставить хэш-таблицу. Коэффициент загрузки слишком высокий. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: 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

Есть ли более безопасный способ сделать это?

спасибо!

Ответы [ 2 ]

3 голосов
/ 28 января 2010

Вы не сказали, что такое фреймворк, но я предполагаю .NET:

Эта ошибка почти всегда вызвана несколько потоков, изменяющих Hashtable в то же время. Исправление вставить блокировки перед изменением Hashtable, так как Hashtable не является многопоточный безопасный.

Для сред .NET 2.0 ASP.NET есть исправление, которое может решить ваши проблемы: ИСПРАВЛЕНИЕ: Исключительная ситуация System.InvalidOperationException возникает при запуске веб-приложения на основе .NET Framework 2.0 с пакетом обновления 2 или .NET Framework 3.5 с пакетом обновления 1

0 голосов
/ 10 марта 2010

У них теперь также есть исправление для Windows Server 2003 x32 / x64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...