Описание тега concurrentdictionary

ConcurrentDictionary - это потокобезопасная коллекция пар ключ-значение.Net, к которой могут обращаться одновременно несколько потоков.
2 ответа

Как мне синхронизировать 2 ConcurrentDictionaries?

Мне нравится операция без блокировки ConcurrentDictionary и я использую ее в двух объектах: ConcurrentDictionary<datetime,myObj> myIndexByDate ConcurrentDictionary<myObjSummary, ConcurrentDictionary<int, myObj> myObjectSummary Index Э…
3 ответа

Коллекция Concurrent с максимально быстрой возможностью добавления, удаления и поиска

Я делаю некоторые тяжелые вычисления в C# .NET, и при выполнении этих вычислений в цикле параллельного. For я должен собрать некоторые данные в сборе, но из-за ограниченной памяти я не могу собрать все результаты, поэтому я храню только лучшие. Эти …
1 ответ

Как получить моментальный снимок ConcurrentDictionary в C#?

MSDN утверждает, что перечислитель, возвращаемый из словаря, не представляет моментальный снимок словаря. Хотя это будет редко необходимо в многопоточной среде, но если кто-то захочет, каков наилучший способ получить моментальный снимок ConcurrentD…
11 май '17 в 20:27
1 ответ

Как этот менеджер кэша хранит кэшированные данные?

Я использую этот менеджер кеша, взятый из bbarry на github. Я не понимаю, где и как на самом деле хранятся кэшированные данные. Большинство кеширования, которое я видел, использует MemoryCache, но я не вижу упоминания об этом нигде. Я могу только ду…
07 мар '16 в 19:19
1 ответ

Защита от условий гонки в System.Collections.Concurrent.ConcurrentDictionary

.NET ConcurrentDictionary подвержен состоянию гонки, которое может вызвать непредвиденные данные, как описано в нижней части этой статьи MSDN. Я предполагаю, что есть несколько факторов, чтобы принять во внимание. В: Как мне написать код, который не…
1 ответ

Обновление в одном Concurrentdictionary отражается в основном словаре

У меня есть два словарей одновременно var MainDic = new ConcurrentDictionary<string, string>(); а также var TempDic = new ConcurrentDictionary<string, string>(MainDic); мой TempDic содержит те же данные, что и MainDicЯ делаю вычисления н…
10 фев '14 в 06:31
2 ответа

Используйте LINQ ToDictionary с ConcurrentDictionary

Я использую словарь для сбора событий в многопоточном приложении, использую блокировку при добавлении события и не использую его при поиске. Каждый час или около того я запускаю очистку событий старше определенного времени. Очень просто и все работа…
01 окт '13 в 20:50
4 ответа

Блокировка для ConcurrentDictionary при AddOrUpdate-ing?

Я использую ConcurrentDictioanry<string, HashSet<string>> чтобы получить доступ к некоторым данным во многих потоках. Я прочитал в этой статье (прокрутите вниз), что метод AddOrUpdate не выполняется в замке, так что это может поставить п…
13 сен '12 в 20:48
9 ответов

Производительность ConcurrentDictionary<> в одном потоке недоразумение?

Связанная краткая информация: AFAIK, Параллельные классы стека, очереди и мешка реализованы внутри с помощью связанных списков. И я знаю, что споров намного меньше, потому что каждый поток отвечает за свой собственный связанный список. В любом случа…
1 ответ

Безопасен ли этот подход

Безопасен ли подход под нитью? Я знаю, что ConcurrentDictionary предоставляет метод TryRemove, но мне просто не нравится иметь переменную для значения, которую я никогда не буду использовать. ConcurrentDictionary&lt;int, int&gt; myDict = new Concurr…
06 фев '15 в 20:43
1 ответ

Ввод и получение значений из массивов в одном ConcurrentDictionary с C#

До этого момента я использовал простые массивы для ввода и получения необходимой информации. Первый пример следующий: // ===Example 1. Enter info //// string[] testArr1 = null; testArr1[0] = "ab"; testArr1[1] = "2"; // ===Example 1. GET info //// st…
26 мар '12 в 20:25
1 ответ

Словарь безопасности параллельного использования

Мне нужно поточно-безопасный способ получить каждый элемент ConcurrentDictionary(строка, список) Безопасно ли использовать следующую конструкцию? foreach (var item in concurrentDict) { var readonlyCollection = item.Value.AsReadOnly(); //use readonly…
19 дек '17 в 20:57
0 ответов

ConcurrentDictionary TryUpdate средство сравнения равенства

У меня есть ConcurrentDictionary, который я использую в качестве хэш-таблицы, которая будет обновляться через регулярные промежутки времени. TValue моего ConcurrentDictionary - это пользовательский класс, который я создал: public class RefreshableDi…
29 июл '15 в 07:14
0 ответов

Если вы блокируете значения в ConcurrentDictionary, рекомендуется

Я пытаюсь найти лучшее решение (производительность и точность), чтобы иметь статический список объектов в веб-сервисе. Некоторые веб-методы будут вносить изменения в эти объекты и возвращать состояние объекта после внесения изменений, а другие будут…
1 ответ

Нужно ли применять блокировку даже при доступе к параллельному словарю

Я использую статический параллельный словарь в веб-API, и он доступен для всех пользователей. Я использую методы ниже: все эти методы потокобезопасны? Или я должен добавить lock() хотя это ConccurentDictionary? По сути, к нему обращаются все пользов…
1 ответ

Какой элемент возвращает ConcurrentDictionary.ElementAt

В моем коде я получил ConcurrentDictionary, теперь я хочу перебирать каждый элемент в Словаре, но если условие истинно, я хочу удалить элемент из этого Словаря, чтобы не использовать цикл foreach. Также может случиться, что Словарь получит новый эле…
11 ноя '18 в 10:01
5 ответов

Почему у ConcurrentQueue и ConcurrentDictionary есть методы "Try" - TryAdd, TryDequeue - вместо Add и Dequeue?

ConcurrentQueue имеет TryDequeue метод. Queue только что Dequeue метод. В ConcurrentDictionary здесь нет Add метод, но у нас есть TryAdd вместо. Мой вопрос: В чем разница между этими параллельными методами сбора? Почему они разные для одновременных …
2 ответа

Итерация по ConcurrentDictionary и изменение коллекции

Как правильно перебрать коллекцию ConcurrentDictionary и удалить некоторые записи. Насколько я понимаю, ConcurrentDictionary реализует блокировку на уровне ячейки, и для меня важно выполнить итерацию всей коллекции и удалить ненужные данные с помощь…
23 окт '14 в 10:41
1 ответ

Почему я не могу добавить ноль в качестве значения при использовании ConcurrentDictionary?

Рассмотрим следующий код: // holds the actual values private volatile ConcurrentDictionary&lt;string, Object&gt; values; public object this[string key] { get { // exception is thrown on this line return values.GetOrAdd(key, null); } set { values.Add…
21 июн '16 в 17:38
1 ответ

Конкретная блокировка словаря

В настоящее время я читаю код, предоставленный нашим внешним человеком, и я не понимаю эту часть кода: private ConcurrentDictionary&lt;Int64, Person&gt; users = new ConcurrentDictionary&lt;Int64, Person&gt;(); private Dictionary&lt;String, Int64&gt;…
10 янв '18 в 16:44