Драгоценный камень A. Net4: ConcurrentDictionary - подсказки и приемы

Я начал использовать новый ConcurrentDictionary от.Net4 для реализации простого кэширования для проекта поточной обработки.

Но я задаюсь вопросом, относительно чего я должен заботиться об осторожных при использовании его?

Каковы были Ваши события с помощью него?

12
задан SDReyes 28 June 2011 в 13:27
поделиться

3 ответа

Члены являются потокобезопасными, но не следует ожидать, что последовательность вызовов будет потокобезопасной. Например, вы не можете ожидать, что следующее будет потокобезопасным:

if (!dictionary.ContainsKey(key))
{
    // Another thread may have beaten you to it
    dictionary.Add(key, value);
}

Вместо этого используйте новый потокобезопасный API - например, AddOrUpdate (последний выигрывает в случае условие гонки) или GetOrAdd (первый выигрывает в случае состояния гонки).

20
ответ дан 2 December 2019 в 07:20
поделиться

ConcurrentDictionary является потокобезопасным. Вам не нужно беспокоиться об этом, даже если вы используете его из нескольких потоков.

-1
ответ дан 2 December 2019 в 07:20
поделиться

У меня пока не было проблем с объектами параллельной коллекции. Они значительно увеличивают мою продуктивность, позволяя не беспокоиться о проблемах параллелизма с коллекциями и сосредоточиться на написании логики приложения.

Это не значит, что нет никаких проблем. Просто ничего, с чем я столкнулся.

2
ответ дан 2 December 2019 в 07:20
поделиться
Другие вопросы по тегам:

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