Каковы веские причины использовать MemoryCache поверх простого старого словаря <string, object> - PullRequest
42 голосов
/ 31 августа 2011

Я только что столкнулся с MemoryCache , который является новым в .NET 4.

Я понял, что это может быть полезно, если вы хотите:

  • Ограничение общего использования памяти кешем
  • Имейте время истечения объекта (время жизни) для объектов, которые вы помещаете в кеш

Существуют ли другие веские причины использовать MemoryCache вместо стандартного Dictionary<string,object>

У меня есть несколько книг по C # и .NET, и нигде нет ссылок на это.

1 Ответ

36 голосов
/ 31 августа 2011

Я думаю, что вы прибили две веские причины: -)

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

Словарь не «потеряет содержимое».

Обновление: MemoryCache является поточно-ориентированным и имеет такие методы, как AddOrGetExisting. Со словарем вам придется синхронизировать доступ самостоятельно (или использовать ConcurrentDictionary).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...