2011-04-05 96 views

回答

7

您可以配置做到這一點...例如...

<system.runtime.caching> 
    <memoryCache> 
     <namedCaches> 
     <add name="Default" 
       cacheMemoryLimitMegabytes="52" 
       physicalMemoryLimitPercentage="40" 
       pollingInterval="00:04:01" /> 
     </namedCaches> 
    </memoryCache> 
</system.runtime.caching> 

要做到這一點在代碼中看到... this msdn page

+1

酷!你能用代碼做它嗎?你知道如何判斷緩存有多大? – 2011-04-05 04:03:13

+0

我不知道如何讓高速緩存大小... – 2011-04-05 04:10:26

+0

您應該可以,因爲它需要的配置項目在它的構造......作爲一個名稱值集合。 – 2011-04-05 04:13:31

41

您可以指定專門的物理內存的最高金額應用程序配置文件中的MemoryCache使用namedCaches元素,或者通過在創建MemoryCache實例時通過將NameValueCollection傳遞到constructor的設置傳入設置,方法是在集合中輸入條目,密鑰爲cacheMemoryLimitMegabytes,值爲10

這裏是namedCaches配置元素的例子:

<configuration> 
    <system.runtime.caching> 
    <memoryCache> 
     <namedCaches> 
     <add name="Default" 
      cacheMemoryLimitMegabytes="10" 
      physicalMemoryLimitPercentage="0" 
      pollingInterval="00:05:00" /> 
     </namedCaches> 
    </memoryCache> 
    </system.runtime.caching> 
</configuration> 

這裏是你如何可以創建過程中配置MemoryCache

//Create a name/value pair for properties 
var config = new NameValueCollection(); 
config.Add("pollingInterval", "00:05:00"); 
config.Add("physicalMemoryLimitPercentage", "0"); 
config.Add("cacheMemoryLimitMegabytes", "10"); 

//instantiate cache 
var cache = new MemoryCache("CustomCache", config); 

blog post細節幾乎所有的辦法配置MemoryCache對象,並且一些示例已根據此來源進行了修改。

+0

@khonsort感謝您的編輯。 – arcain 2013-07-24 14:42:19

+1

什麼時候這個大小限制被評估?添加新的緩存條目時還是僅在輪詢間隔期間?根據'pollingInterval'和concery = T與一些複雜的體操 – manipurea 2016-06-16 07:51:13

+0

@manipurea異步你可以看到,如果你把ILSpy它 – 2017-10-24 09:36:00

相關問題