【发布时间】:2011-12-24 07:27:26
【问题描述】:
我正在使用一个任务是显示大量位图文件的 WPF 应用程序。将来我计划使用矢量图形实现一个解决方案,但现在我遇到了这个问题:
为了尽量减少我的应用程序从磁盘读取文件的时间,我创建了一个Dictionary<string, BitmapImage>(其中字符串是图像的文件路径)来保存最近使用的图像。如果请求了最近查看过的图像,程序会从Dictionary 而不是从磁盘中获取它。但是,随着查看的图像数量的增加,程序使用的 RAM 量也会增加。所以我的想法是保留有限数量的图像,并在从磁盘加载新图像时,覆盖我的Dictionary 中最旧的图像。
我将如何以最好的方式做到这一点?我已经研究过使用SortedDictionary,但不知道如何编写IComparer,因为keys 或items 都没有关于添加时间/顺序的任何信息。
将SortedDictionary<DateTime, string> 与DateTime IComparer 分开是一个明智的解决方案吗?这样,当添加新文件时,可以找到最旧添加文件的路径,并与我的Dictionary 中的正确图像匹配。不过,这种感觉就像是一种高级解决方案。任何被忽视或内置的解决方案?
【问题讨论】:
标签: c# .net collections dictionary