Вопросы по теме 'concurrentdictionary'

Почему метод ConcurrentDictionary.AddOrUpdate медленный?
Я работаю над многопоточным многозначным словарем. Внутри этого словаря используется параллельный словарь (.net 4.0) с настраиваемым списком ссылок в качестве значения. Такие же ключевые элементы добавляются в список ссылок. Проблема в том, что...
4578 просмотров
schedule 28.11.2021

Потоковая повторная инициализация параллельного словаря
Я хочу знать, является ли следующий код потокобезопасным, хотя я предполагаю, что это не так. И как я могу сделать это потокобезопасным? В основном у меня есть ConcurrentDictionary , который действует как кеш для таблицы базы данных. Я хочу...
1789 просмотров

ConcurrentDictionary GetOrAdd async
Я хочу использовать что-то вроде GetOrAdd с ConcurrentDictionary в качестве кеша для веб-службы. Есть ли асинхронная версия этого словаря? GetOrAdd будет делать веб-запрос, используя HttpClient , поэтому было бы неплохо, если бы существовала...
7780 просмотров

Многопоточный доступ к непотоковым значениям в System.Collection.Concurrent?
Если я использую коллекцию из пространства имен System.Collection.Concurrent , такую ​​как ConcurrentDictionary<K, V> , с типом ключа и/или значения, который не является потокобезопасным, например ConcurrentDictionary<int,...
210 просмотров

Как я могу использовать AddOrUpdate .NET ConcurrentDictionary с моим пользовательским POCO?
Я не уверен, как написать часть func метода ConcurrentDictionary.AddOrUpdate , которая должна проверять, больше ли свойство UpdatedOn существующего ключа/значения или равно ему. Учитывая следующий POCO, как я могу использовать .NET...
682 просмотров
schedule 29.06.2022

Может ли Microsoft AVRO сериализовать ConcurrentDictionary?
Я пытаюсь использовать библиотеку Microsoft.Hadoop.Avro для сериализации. Но не удается сериализовать тип ConcurrentDictionary . Он обрабатывает ConcurrentDictionary как обычный Dictionary и ищет метод Add . Конечно, не существует. Я...
557 просмотров

Это надежный способ использования AddOrUpdate в ConcurrentDictionary?
Я следил за курсом Pluralsight, автором которого является Саймон Робинсон в Concurrent Collections. Он использует AddOrUpdate следующим образом, чтобы сделать его потокобезопасным: public bool TrySellShirt(string code) { bool success =...
39 просмотров

Как оптимизировать код с помощью DataTable и Linq?
У меня есть 2 таблицы данных . Имеется около 17000 (таблица1) и 100000 (таблица2) записей. Необходимо проверить, содержит ли поле "FooName" "ItemName". Также необходимо взять "FooId" , а затем добавить "ItemId" и "FooId" в...
111 просмотров

Как обернуть ConcurrentDictionary в BlockingCollection?
Я пытаюсь реализовать ConcurrentDictionary, завернув его в BlockingCollection, но, похоже, это не удалось. Я понимаю, что объявления одной переменной работают с BlockingCollection, например ConcurrentBag<T> , ConcurrentQueue<T> и т....
4222 просмотров
schedule 04.06.2023

Элементы, добавленные в ConcurrentDictionary, сразу же переходят в состояние зомби.
Я пытаюсь быстро собрать небольшую программу, используя Alchemy Websockets , которая использует коллекцию ConcurrentDictionary в своих примерах. В коде, который я написал, я пытаюсь добавить нового клиента в ConcurrentDictionary. Я заметил, что...
629 просмотров
schedule 07.01.2023

атомарное addorupdate (попытка написать именованный шкафчик с использованием параллельного словаря)
отмечает, что AddOrUpdate не является атомарным (и не может гарантировать, что делегаты не будут запускаться более одного раза). Я пытаюсь реализовать реализацию блокировки имен, используя параллельный словарь a la здесь , но там, где словарь не...
1032 просмотров
schedule 11.04.2023

ConcurrentDictionary является потокобезопасным для редактирования значения после GetOrAdd?
Я использую метод GetOrAdd параллельного словаря для получения списка значений, а затем со ссылкой на этот список значений, которые я редактирую. Это потокобезопасно, чтобы сделать это таким образом? Первый метод — я добавляю значение, а второй —...
1510 просмотров

Как инициализировать ConcurrentDictionary? Ошибка: не удается получить доступ к частному методу «Добавить» здесь
У меня есть статический класс, в котором я использую словари в качестве таблиц поиска для сопоставления типов .NET и типов SQL. Вот пример такого словаря: private static readonly Dictionary<Type, string> SqlServerMap = new...
8643 просмотров

valueFactory в параллельном словаре
Я пишу программу winform для тестирования параллельного словаря С# с классом ниже: public class Class1 { public int X = 10; public Class1(int x) { X = x; Debug.WriteLine("Class1 Created"); } } и ниже код...
653 просмотров
schedule 27.06.2023

Потоки и их взаимодействие с параллельным словарем и sw.Flush();
Рассмотрим этот код: class program { public static ConcurrentDictionary<string, int> dictionary = new ConcurrentDictionary<string,int>(); static void Main(string[] args) { runServer(); } static void...
80 просмотров

Вызов ToList() для ConcurrentDictionary‹TKey, TValue› при добавлении элементов
Я столкнулся с интересной проблемой. Зная, что ConcurrentDictionary<TKey, TValue> можно безопасно перечислить при изменении, с (в моем случае) нежелательным побочным эффектом перебора элементов, которые могут исчезать или появляться несколько...
1949 просмотров

Когда мне следует использовать ConcurrentDictionary и Dictionary?
Я всегда не понимаю, какой из них выбрать. Насколько я понимаю, я использую Dictionary вместо List , если мне нужны два типа данных как Key и Value , поэтому я могу легко найти значение по его key , но меня всегда путает, следует ли мне...
26908 просмотров
schedule 29.08.2023

Как получить моментальный снимок ConcurrentDictionary в С#?
MSDN указывает, что перечислитель, возвращенный из словаря, не представляет момент- моментальный снимок словаря. Хотя это редко требуется в многопоточной среде, но если нужно, как лучше всего получить моментальный снимок ConcurrentDictionary?
1275 просмотров
schedule 06.04.2023

Может ли метод .NET ConcurrentDictionary GetOrAdd вызывать асинхронный метод?
Я рассматриваю использование ConcurrentDictionary для хранения некоторых кэшированных данных, которые поступают из медленного источника (например, из базы данных). Обращение к базе данных async . Итак, возможно ли, чтобы параллельный словарь...
4520 просмотров

Удаление нескольких элементов из ConcurrentDictionary на основе условного ключа
Допустим, у меня есть ConcurrentDictionary : var dict = new ConcurrentDictionary<string, someObject>(); dict.TryAdd("0_someA_someB_someC", obj0); dict.TryAdd("1_someA_someB_someC", obj1); dict.TryAdd("2_someA_someB_someC", obj2);...
2926 просмотров
schedule 13.03.2023