2013-09-26 5 views
8

Привет Я занимаюсь некоторыми исследованиями после параллельного словаря с функциями истечения срока действия.Искомый параллельный словарь

У нас есть список объектов, к которым обращаются с добавлением и удаляет из множества разных потоков. Мы также хотим, чтобы время истечения срока для предметов, например, позволяет говорить 60 секунд. (Было бы неплохо, если бы мы могли прослушивать событие, которое сообщает нам, какие элементы истекли и удалены из списка).

Нам также нужен поиск, чтобы быть очень быстрым, как словарь.

В списке будет храниться тысячи объектов.

Так что это похоже на ConcurrentDictionary, но с возможностями истечения срока действия.

Может ли MemoryCache быть чем-то?

Или это другие вещи, на которые нужно смотреть?

+0

Рассматривались ли вы просто с использованием класса ['Cache'] (http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx)? (edit) Нет, 'MemoryCache' именно то, что вам нужно, я не полностью изучил ваш вопрос. – Groo

+0

@Groo: OP спрашивает о MemoryCache, который фактически совпадает с кешем без зависимости от System.Web.dll – spender

+0

@spender: о, правильно, я просто прочитал начало ответа и предположил, что OP хочет скомпоновать его с нуля. – Groo

ответ

9

MemoryCache выглядит идеально, особенно

Этот тип является поточно.

+0

+1. Он также [поддерживает истечение срока действия] (http://msdn.microsoft.com/en-US/library/system.runtime.caching.cacheitempolicy.absoluteexpiration.aspx) [с уведомлением] (http://msdn.microsoft.com/ EN-US/библиотека/system.runtime.caching.cacheitempolicy.updatecallback.aspx). –

+0

Вопрос в том, действительно ли он быстро добавляется и удаляется? – NPehrsson

+0

@NPehrsson Думаю, вам придется самому это проверить. – spender

Смежные вопросы