2016-09-28 2 views
0

Ich habe den folgenden Code eingerichtet, um einen Cache zu erstellen. Beim Debuggen füge ich cache zur Überwachungsliste hinzu und gehe durch den Code. Aber wenn ich die Eigenschaften von cache, in PollingInterval (nur Ort, ich kann etwas im Zusammenhang mit der Zeit sehen) zeigt es Tage als 0, und Minuten als 2. Ich habe dies mit beiden AbsoluteExpiration und SlidingExpiration versucht.Bestätigung des Cachespeicherablaufdatums/-zeit in C#

ObjectCache cache = MemoryCache.Default; 
CacheItemPolicy policy = new CacheItemPolicy(); 
//policy.AbsoluteExpiration = DateTimeOffset.Now.AddHours(24.0); 
//policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(30.0); 
policy.SlidingExpiration = TimeSpan.FromDays(2.0); 

cache.Set("Clients", clients, policy); 

Ich habe sogar versucht, DateTimeOffset.Now.AddHours(24.0) als dritter Parameter für cache.Set(...) statt CacheItemPolicy verwenden.

Danke.

+1

[PollingInterval] (https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache.pollinginterval (v = vs.110) .aspx) - _ "Erhält die maximale Zeit nach der Cache aktualisiert seine Speicherstatistik "_ - nicht, wie lange Objekte zwischengespeichert werden. – stuartd

+0

Wie kann ich die Cache-Ablaufzeit bestätigen? –

+1

[Einen Test schreiben] (http://stackoverflow.com/questions/3848560/asp-net-4-0-cacheitempolicy-sliding-expiration-incorrect)? Oder vielleicht einen Blick auf seine Felder mit Reflektion werfen? Warum glaubst du nicht, dass es korrekt ist? – stuartd

Antwort

0

Wie @stuartd im Kommentar oben erwähnt, sollte ich nicht bezweifeln, dass das Ablaufdatum nicht richtig angewendet wird. Ich überprüfte dazu und bestätigte mit einer ausreichend kurzen Zeitspanne, dass der Cache-Ablauf tatsächlich korrekt ausgeführt wurde. Danke nochmal @stuartd.

Verwandte Themen