Śledzenie wpisów połączonej pamięci podręcznej
MemoryCache śledzi wpisy połączonej pamięci podręcznej, dzięki czemu opcje są propagowane. W poniższym przykładzie expirationToken
dodano element for child
jest również stosowany do elementu parent
:
using (var parent = cache.CreateEntry(key))
{
parent.SetValue(obj);
using (var child = cache.CreateEntry(key1))
{
child.SetValue(obj);
child.AddExpirationToken(expirationToken);
}
}
Ze względu na wydajność platforma .NET 7 nie śledzi już domyślnie wpisów połączonej pamięci podręcznej. Można jednak włączyć śledzenie przy użyciu nowej opcji.
Wprowadzona wersja
.NET 7
Poprzednie zachowanie
Przed platformą .NET 7 śledzono wpisy połączonej pamięci podręcznej, MemoryCache aby umożliwić propagację opcji. Nie można wyłączyć śledzenia.
Nowe zachowanie
Począwszy od platformy .NET 7, MemoryCache nie śledzi domyślnie wpisów połączonej pamięci podręcznej. Opcja MemoryCacheOptions.TrackLinkedCacheEntries została dodana, aby można było kontrolować, czy wpisy połączonej pamięci podręcznej są śledzone, czy nie.
Typ zmiany powodującej niezgodność
Ta zmiana może mieć wpływ na zgodność binarną.
Przyczyna wprowadzenia zmiany
Ta zmiana została wprowadzona w celu zwiększenia wydajności. Śledzenie wewnętrznie używa metody AsyncLocal<T>, która jest kosztowna i dodaje nietrygalne obciążenie.
Zalecana akcja
Jeśli chcesz MemoryCache kontynuować śledzenie wpisów połączonej pamięci podręcznej, aby można było propagować opcje, ustaw wartość MemoryCacheOptions.TrackLinkedCacheEntriestrue
.
var options = new MemoryCacheOptions
{
TrackLinkedCacheEntries = true
};
var cache = new MemoryCache(options);