Csatolt gyorsítótár bejegyzéseinek nyomon követése

MemoryCache nyomon követi a csatolt gyorsítótár bejegyzéseit, hogy a beállítások propagálódjanak. Az alábbi példában a expirationToken hozzáadása szintén alkalmazva lesz child-re parent mellett.

using (var parent = cache.CreateEntry(key))
{
    parent.SetValue(obj);

    using (var child = cache.CreateEntry(key1))
    {
        child.SetValue(obj);
        child.AddExpirationToken(expirationToken);
    }
}

Teljesítménybeli okokból a .NET 7 alapértelmezés szerint nem követi nyomon a csatolt gyorsítótár bejegyzéseit. A nyomkövetést azonban egy új beállítással engedélyezheti.

Bevezetett verzió

.NET 7

Előző viselkedés

A .NET 7 előtt a MemoryCache nyomon követte a csatolt gyorsítótár-bejegyzéseket, hogy lehetővé tegye a beállítások propagálását. A nyomon követés nem tiltható le.

Új viselkedés

A .NET 7-től MemoryCache kezdődően alapértelmezés szerint nem követi nyomon a csatolt gyorsítótár bejegyzéseit. A MemoryCacheOptions.TrackLinkedCacheEntries beállítás hozzáadva, így szabályozhatja, hogy a csatolt gyorsítótár bejegyzései nyomon legyenek-e követve vagy sem.

A kompatibilitástörő változás típusa

Ez a változás befolyásolhatja a bináris kompatibilitást.

A változás oka

Ezt a módosítást a teljesítmény javítása érdekében vezették be. A nyomon követés belső használata AsyncLocal<T> költséges, és jelentős többletterhelést okoz.

Ha azt szeretné, hogy MemoryCache továbbra is nyomon kövesse a csatolt gyorsítótár-bejegyzéseket a beállítások propagálása érdekében, állítsa a MemoryCacheOptions.TrackLinkedCacheEntries következőre true.

var options = new MemoryCacheOptions
{
    TrackLinkedCacheEntries = true
};

var cache = new MemoryCache(options);

Érintett API-k