Я использую новую библиотеку System.Runtime.Caching для кэширования в моем приложении и определил ее в App.config следующим образом:
<system.runtime.caching>
<memoryCache>
<namedCaches>
<add name="MyCache" cacheMemoryLimitMegabytes="10"
physicalMemoryLimitPercentage="30" pollingInterval="00:00:10" />
</namedCaches>
</memoryCache>
</system.runtime.caching>
Затем из кода я создаю его экземпляр следующим образом: _cache = new MemoryCache("MyCache");
И добавьте следующие записи: _cache.Add(resourceName, resource, new CacheItemPolicy());
Я использую этот кеш для хранения BitmapImage
объектов, и чтобы убедиться, что кеш работает должным образом, я добавил десятьBitmapImage
объектов в кэш, каждый из которых содержит изображение около 7 МБ.Затем я подождал десять секунд, пока произойдет опрос, и проверил записи в кэше, но все они были там.Ни один объект не был выселен.
Я что-то здесь не так делаю?Я знаю, что настройки читаются из App.config правильно.Возможно ли, что сами экземпляры BitmapImage
маленькие и ссылаются только на образ на диске?И как кеш определяет размер объекта?