大量のビットマップファイルを表示するというWPFアプリケーションで作業しています。辞書から一番古い項目を削除する
私のアプリケーションがディスクからファイルを読み込む時間を最小限に抑えるために、Dictionary<string, BitmapImage>
(ここで、文字列は画像のファイルパスです)を作成しました。この問題を解決するには、最も最近使用された画像を保持する。最近閲覧した画像が要求された場合、プログラムはディスクからではなくDictionary
から取り込みます。ただし、表示される画像の数が増えると、プログラムによって使用されるRAMの量も増加します。だから私の考えは限られた量の画像を保持していて、新しいものがディスクからロードされると、私のDictionary
から最も古いものを上書きします。
可能な限り最良の方法でこれを行う方法を教えてください。私はSortedDictionary
を使用してみましたが、と書く方法を理解できません。keys
またはitems
には、追加された時間/順序に関する情報がありません。
別のSortedDictionary<DateTime, string>
をDateTime IComparer
に保つのは分かりやすい解決策ですか?このようにして、新しいファイルが追加されると、最も古いファイルへのパスが見つかり、Dictionary
の正しいイメージと一致します。この種のことは高度な解決策のように感じます。見落とされていたり、組み込まれているソリューションはありますか?
私はBob Rossneyのものを使用します。私自身で平凡なものを作るよりも良いものを使う方が良い; Pありがとう! – Tobbe