Перед использованием методов и свойств - убедиться, что данные вызовы не будут приводить к полному блокированию коллекции (пример: ConcurrentDictionary<TKey, TValue>.Count вызывает полную блокировку). Если требуется подсчет элементов - следует использовать методы статического класса System.Threading.Interlocked.
Пример:
var count = 0;
var queue = new ConcurrentQueue<T>();
var value = new T();
// в первом потоке добавляем элемент
queue.Enqueue(value);
Interlocked.Increment(ref count);
// где-то в другом потоке удаляем элемент
if (queue.TryDequeue(out value))
{
Interlocked.Decrement(ref count);
}
--
---
Вы получили это сообщение, поскольку подписаны на группу "dotnetconf".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес dotnetconf+...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.