Описание тега concurrentdictionary
ConcurrentDictionary - это потокобезопасная коллекция пар ключ-значение.Net, к которой могут обращаться одновременно несколько потоков.
2
ответа
Как мне синхронизировать 2 ConcurrentDictionaries?
Мне нравится операция без блокировки ConcurrentDictionary и я использую ее в двух объектах: ConcurrentDictionary<datetime,myObj> myIndexByDate ConcurrentDictionary<myObjSummary, ConcurrentDictionary<int, myObj> myObjectSummary Index Э…
19 май '12 в 14:56
3
ответа
Коллекция Concurrent с максимально быстрой возможностью добавления, удаления и поиска
Я делаю некоторые тяжелые вычисления в C# .NET, и при выполнении этих вычислений в цикле параллельного. For я должен собрать некоторые данные в сборе, но из-за ограниченной памяти я не могу собрать все результаты, поэтому я храню только лучшие. Эти …
25 июл '15 в 14:14
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. Я предполагаю, что есть несколько факторов, чтобы принять во внимание. В: Как мне написать код, который не…
12 май '12 в 16:40
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, Параллельные классы стека, очереди и мешка реализованы внутри с помощью связанных списков. И я знаю, что споров намного меньше, потому что каждый поток отвечает за свой собственный связанный список. В любом случа…
06 мар '13 в 15:58
1
ответ
Безопасен ли этот подход
Безопасен ли подход под нитью? Я знаю, что ConcurrentDictionary предоставляет метод TryRemove, но мне просто не нравится иметь переменную для значения, которую я никогда не буду использовать. ConcurrentDictionary<int, int> 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, рекомендуется
Я пытаюсь найти лучшее решение (производительность и точность), чтобы иметь статический список объектов в веб-сервисе. Некоторые веб-методы будут вносить изменения в эти объекты и возвращать состояние объекта после внесения изменений, а другие будут…
06 июн '14 в 10:21
1
ответ
Нужно ли применять блокировку даже при доступе к параллельному словарю
Я использую статический параллельный словарь в веб-API, и он доступен для всех пользователей. Я использую методы ниже: все эти методы потокобезопасны? Или я должен добавить lock() хотя это ConccurentDictionary? По сути, к нему обращаются все пользов…
12 янв '17 в 07:26
1
ответ
Какой элемент возвращает ConcurrentDictionary.ElementAt
В моем коде я получил ConcurrentDictionary, теперь я хочу перебирать каждый элемент в Словаре, но если условие истинно, я хочу удалить элемент из этого Словаря, чтобы не использовать цикл foreach. Также может случиться, что Словарь получит новый эле…
11 ноя '18 в 10:01
5
ответов
Почему у ConcurrentQueue и ConcurrentDictionary есть методы "Try" - TryAdd, TryDequeue - вместо Add и Dequeue?
ConcurrentQueue имеет TryDequeue метод. Queue только что Dequeue метод. В ConcurrentDictionary здесь нет Add метод, но у нас есть TryAdd вместо. Мой вопрос: В чем разница между этими параллельными методами сбора? Почему они разные для одновременных …
15 июл '16 в 12:44
2
ответа
Итерация по ConcurrentDictionary и изменение коллекции
Как правильно перебрать коллекцию ConcurrentDictionary и удалить некоторые записи. Насколько я понимаю, ConcurrentDictionary реализует блокировку на уровне ячейки, и для меня важно выполнить итерацию всей коллекции и удалить ненужные данные с помощь…
23 окт '14 в 10:41
1
ответ
Почему я не могу добавить ноль в качестве значения при использовании ConcurrentDictionary?
Рассмотрим следующий код: // holds the actual values private volatile ConcurrentDictionary<string, Object> 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<Int64, Person> users = new ConcurrentDictionary<Int64, Person>(); private Dictionary<String, Int64>…
10 янв '18 в 16:44