Когда словарь бросает IndexOutOfRangeException на, Добавляют или ContainsKey?

Самый низкий подход к усилиям, вероятно, заключается в использовании плагина Morphext jQuery:

https://github.com/MrSaints/Morphext

Он работает от animate.css, поэтому легко изменить стиль анимации текста.

Если вы ищете что-то более мощное (можете указать в анимации AND, анимировать не только текст), есть выделение Morphist:

https://github.com/MrSaints/Morphist

22
задан driis 17 December 2009 в 10:50
поделиться

3 ответа

Документация к Словарю гласит:

Ни один из членов экземпляра не гарантированно является потокобезопасным.

Чтобы обеспечить доступ к коллекции из нескольких потоков для чтения и записи, необходимо реализовать собственную синхронизацию.

Если вы не синхронизируете доступ к Dictionary, то у вас могут возникнуть проблемы, подобные тем, которые вы описали (предположительно, потому что внутреннее состояние больше не действует). Если вы хотите попытаться воспроизвести это в своей среде разработки, попробуйте создать программу, которая использует несколько потоков для непрерывного чтения и записи из Dictionary без синхронизации.

21
ответ дан Phil Ross 29 November 2019 в 05:38
поделиться

I agree that this is almost certainly a synchronisation issue.

I'm not aware of any documentation that describes exactly when and how this can happen - the behaviour is undefined if you use a dictionary in a non-threadsafe manner.

For testing in your dev environment, I'd suggest running some parallel threads that randomly insert, remove, update etc in a continuous loop (basically a "concentrated" version of what's happening in your production environment).

1
ответ дан 29 November 2019 в 05:38
поделиться

Вот поточно-ориентированный словарь http://devplanet.com/blogs/brianr/archive/2008/09/26/thread-safe-dictionary-in-net.aspx также ознакомьтесь с этим вопросом SO .

0
ответ дан 29 November 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: