【发布时间】:2012-01-25 23:33:03
【问题描述】:
我在我的应用程序中使用新的 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 对象,每个对象包含一个大约7MB 的图像。然后我等了十秒钟让轮询发生并检查缓存中的条目,但它们都在那里。没有一个对象被驱逐。
我在这里做错了吗?我知道设置是从 App.config 正确读取的。 BitmapImage 实例本身是否可能很小并且仅引用磁盘上的图像?以及缓存如何确定对象的大小?
【问题讨论】:
标签: c# .net wpf caching .net-4.0