2011-07-20 16 views
2

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/0a666d5e-9bda-47bd-8dd3-98d32eb5fe60/?prof=required)あまりにMSDNフォーラムでこの質問を持って、私はここの人々の意見を取得したいと思った:条件が追加されます何の下でSystem.Runtime.Caching.MemoryCacheの異常な動作?

(EmployeeCache as MemoryCache).Add("test", new Object(),DateTimeOffset.Now.AddMinutes(10)); 
true 
(EmployeeCache as MemoryCache).GetCount() 
0 
(EmployeeCache as MemoryCache) 
{<namespace>.CustomCache} 
[<namespace>.CustomCache]: {[<namespace>.CustomCache} 
base {System.Runtime.Caching.ObjectCache}: {<namespace>.CustomCache} 
CacheMemoryLimit: 1887436800 
DefaultCacheCapabilities: InMemoryProvider | CacheEntryChangeMonitors | AbsoluteExpirations | SlidingExpirations | CacheEntryUpdateCallback | CacheEntryRemovedCallback 
Name: "keyname" 
PhysicalMemoryLimit: 99 
PollingInterval: {00:02:00} 

ここに私のイミディエイトウィンドウの出力がありますMemoryCacheにtrueを返しますが、オブジェクトはキャッシュされません。 は

答えて

0

(GetCountのと、それがキャッシュに追加した後immediatley作られて、次のいずれかの呼び出し)は、このような状況に取得する最も簡単な方法は、Disposeが呼び出されたためMemoryCacheオブジェクト上Addにあります。これを確認するには、Visual Studioデバッガを使用してMemoryCacheオブジェクトのプライベート_disposedプロパティを確認します。キャッシュを参照する変数にカーソルを合わせるか、クイックウォッチを使用するか、直接のウィンドウを使用します。

関連する問題