我有一个使用许多(有时很大)图像的 WinRT 应用程序。图像存储在磁盘上,但加载图像需要一些时间,这会导致视觉中断。为了解决这个问题,我预先加载图像并将它们存储到缓存中。
但是,我有点犹豫要在内存中存储任意数量的图像,并且希望使用在内存不足时自动清理的缓存。
我将如何实施呢?在 iOS 上有一种didReceiveMemoryWarning
方法,但我找不到 WinRT 的等效方法。
我有一个使用许多(有时很大)图像的 WinRT 应用程序。图像存储在磁盘上,但加载图像需要一些时间,这会导致视觉中断。为了解决这个问题,我预先加载图像并将它们存储到缓存中。
但是,我有点犹豫要在内存中存储任意数量的图像,并且希望使用在内存不足时自动清理的缓存。
我将如何实施呢?在 iOS 上有一种didReceiveMemoryWarning
方法,但我找不到 WinRT 的等效方法。
如果使用.NET,您可以尝试在缓存中保存对图像的弱引用,因此当您使用它们时——它们不会被垃圾收集,但如果你不这样做——它们将在内存压力发生时被收集。从缓存中检索图像时 - 您只需检查弱引用是否存在,如果不存在 - 您将在返回之前重新加载图像。