我正在處理一個WPF應用程序,其任務是顯示大量的位圖文件。在未來,我計劃實現一個解決方案,使用矢量圖形,但現在我有這個問題:從字典中刪除最舊的項目
爲了儘量減少我的應用程序從磁盤讀取文件的時間我創建了一個Dictionary<string, BitmapImage>
(其中字符串是圖像的文件路徑)保存最新使用的圖像。如果請求最近查看的圖像,程序將從Dictionary
而不是從磁盤中讀取該圖像。但是,隨着查看的圖像數量的增加,程序使用的RAM數量也會增加。所以我的想法是保存有限的圖像,並且從磁盤加載新圖像,覆蓋從我的Dictionary
最老的一個。
我該如何以最好的方式去做這件事?我研究過使用SortedDictionary
,但不知道如何編寫IComparer
,因爲keys
或items
都沒有關於它們添加的時間/順序的任何信息。
會保持一個單獨的SortedDictionary<DateTime, string>
與DateTime IComparer
是一個明智的解決方案?這樣,當添加一個新文件時,可以找到最早添加文件的路徑,並與我的Dictionary
中的正確圖像相匹配。儘管如此,這種感覺像是一種先進的解決方案。任何被忽視或內置的解決方案?
我會用Bob Rossney的那個。更好地使用一個比我自己做一個平庸的一個好; P謝謝! – Tobbe