ConcurrentDictionary как статический кеш - PullRequest
2 голосов
/ 01 августа 2010

Я думаю об использовании класса (singleton) с коллекциями, реализованными с использованием ConcurrentDictionary.Этот класс будет использоваться в качестве реализации кеша (asp.net / wcf).

Что вы думаете об экспозиции этих коллекций явным образом из такого класса по сравнению с выставлением всего 3 методов (get, add, clear) для каждогоиз них (используя безопасные методы с CD)?

Ответы [ 2 ]

5 голосов
/ 01 августа 2010

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

3 голосов
/ 01 августа 2010

Кэш без политики истечения срока действия - это утечка памяти. Какая бы политика вы ни предложили, она будет влиять на метод Add (). Вы должны обернуть этот метод, чтобы инициализировать вещи, которые позволяют вашей логике истечения срока действия. Вы не можете просто позволить клиентскому коду напрямую управлять коллекцией.

Итак, да, создайте оболочку класса.

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