Ho una classe builder che crea un'istanza che implementa IDisposable. Ogni volta che l'elemento da costruire è già nella cache, il builder restituirà invece quell'istanza. La mia domanda è, la cache chiamerà il metodo Dispose() sugli elementi IDisposable che contiene quando sono sfrattati o devo codificare esplicitamente tale comportamento sul callback CacheItemPolicy.RemovedCallback?System.Runtime.Caching.MemoryCache disporrà di oggetti identificabili quando viene rimosso?
7
A
risposta
8
No Dispose
non viene chiamato. È facile da testare.
public class TestClass : IDisposable
{
public void Dispose()
{
Console.WriteLine("disposed");
}
}
MemoryCache _MemoryCache = new MemoryCache("TEST");
void Test()
{
_MemoryCache.Add("key",
new TestClass(),
new CacheItemPolicy()
{
AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(10),
RemovedCallback = (_) => { Console.WriteLine("removed"); }
});
}
Problemi correlati
- 1. Raccolta standard per oggetti identificabili
- 2. Rilevamento di oggetti identificabili "fuoriusciti"
- 3. notifica angularJS quando l'elemento viene rimosso
- 4. Implementazione generica di System.Runtime.Caching.MemoryCache
- 5. Come rilevare quando un popover viene rimosso in iOS 9
- 6. Come aspettare quando un elemento viene rimosso dal DOM?
- 7. Quando il thread in Java viene rimosso dalla memoria?
- 8. NaN viene rimosso quando si utilizza na.rm = TRUE
- 9. L'osservatore non viene mai rimosso da NSNotificationCenter
- 10. Quando deve essere rimosso removeStickyEvent (...)?
- 11. La convalida del modulo non viene aggiornata quando l'articolo viene rimosso dal modello. Bug?
- 12. Perché il mio oggetto viene rimosso correttamente da un elenco quando __eq__ non viene chiamato?
- 13. CSS3 transizione solo quando si aggiunge classe, non quando viene rimosso
- 14. Come rimuovere un'etichetta di volantino quando viene rimosso un layer di topojson
- 15. Il database di test dell'unità Django non viene rimosso?
- 16. Rimuove automaticamente i progetti di ramo Sonarqube quando il ramo git viene unito/rimosso
- 17. Esecuzione del codice quando viene rimosso un ramo nella pipeline multitranvia di Jenkins
- 18. Il deep linking di iOS viene rimosso in Gmail
- 19. striscia di query viene rimosso dalla Open Graph url
- 20. spazio viene rimosso dalla fine String - UILabel Swift
- 21. Come posso rimuovere oggetti invisibili da uno spazio di lavoro R che non viene rimosso dalla procedura di Garbage Collection?
- 22. Quando un frammento viene sostituito e inserito nello stack posteriore (o rimosso) rimane in memoria?
- 23. Come riutilizzare un CABasicAnimation quando non viene rimosso dopo il completamento?
- 24. Safari mobile - evento "touchend" che non si attiva quando viene rimosso l'ultimo tocco?
- 25. Perché il mio cookie non viene cancellato/rimosso?
- 26. Il record cancellato in ember non viene rimosso dalla raccolta
- 27. dismissViewControllerAnimated viene chiamato ma ViewController non è stato rimosso
- 28. Perché answer_with viene rimosso da rails 4.2 nella propria gemma?
- 29. angularjs ng-repeat elenco non aggiornato quando elemento aggiunto/rimosso
- 30. Quando viene creato PropertyChangedEventManager e quando viene allegato?
@RobSiklos Si prega di non correggere il codice prima di testarlo. Era corretto Lambda richiede un parametro che non uso. Ho ripristinato la risposta. – I4V
molto molto dispiaciuto - ho pensato che fosse un errore di battitura – RobSiklos
terrò questo test come un test unitario, versioni successive del framework potrebbero cambiare questo comportamento, e ti piacerà un test che indica che questo è cambiato! –