2016-09-26 76 views
0

我有一個「配方彈出窗口」,用戶可以在其中顯示多個實例。每個彈出窗口都有一組圖像。兩種配方都可以減少圖像的體積。這些圖像是從svg渲染的。爲了減少內存/ CPU使用率,我想製作一種「圖像緩存」(帶有渲染svgs集合的靜態類)。如果引用丟失,請從列表中刪除/刪除對象

問題: 如果recipe1具有ImageA和ImageB,recipe2具有ImageB和ImageC,則在recipe1關閉後,只應將ImageA銷燬/處置(從集合中移除)。

+1

您可以將[弱引用](https://msdn.microsoft.com/en-us/library/gg712738(v = vs.110).aspx)列表映射到圖像。 – dbc

+1

請說明爲什麼常規緩存類不適用於您的情況(您大概已經嘗試過)。 –

+2

緩存的目的不是爲了不破壞ImageA,所以一旦你回到recipe1,它仍然存在? – poke

回答

1

緩存的目的是保存元素,這些元素當前使用的是而不是,但可能在不久的將來需要使用,並使其訪問速度更快。

那麼,爲什麼你不使用MemoryCacheSlidingExpirationthis answer所述?這樣,所有尚未加載一段時間的圖像將被刪除。