연결된 캐시 항목 추적
MemoryCache는 옵션은 전파되도록 연결된 캐시 항목을 추적합니다. 다음 예제에서는 child
에 대해 추가된 expirationToken
도 parent
에 적용됩니다.
using (var parent = cache.CreateEntry(key))
{
parent.SetValue(obj);
using (var child = cache.CreateEntry(key1))
{
child.SetValue(obj);
child.AddExpirationToken(expirationToken);
}
}
성능상의 이유로 .NET 7은 기본적으로 연결된 캐시 항목을 더 이상 추적하지 않습니다. 그러나 새 옵션을 사용하여 추적을 사용하도록 설정할 수 있습니다.
도입된 버전
.NET 7
이전 동작
.NET 7 이전에는 MemoryCache에서 옵션을 전파할 수 있도록 연결된 캐시 항목을 추적했습니다. 추적을 사용하지 않도록 설정할 수 없습니다.
새 동작
.NET 7부터 MemoryCache는 기본적으로 연결된 캐시 항목을 추적하지 않습니다. 연결된 캐시 항목이 추적되는지 여부를 제어할 수 있도록 MemoryCacheOptions.TrackLinkedCacheEntries 옵션이 추가되었습니다.
호환성이 손상되는 변경의 형식
이 변경은 이진 호환성에 영향을 줄 수 있습니다.
변경 이유
이 변경은 성능 향상을 위해 도입되었습니다. 추적은 내부적으로 AsyncLocal<T>을 사용합니다. 이 경우 비용이 많이 들고 사소한 오버헤드가 추가됩니다.
권장 조치
MemoryCache에서 옵션을 전파할 수 있도록 연결된 캐시 항목을 계속 추적하려면 MemoryCacheOptions.TrackLinkedCacheEntries를 true
로 설정합니다.
var options = new MemoryCacheOptions
{
TrackLinkedCacheEntries = true
};
var cache = new MemoryCache(options);
영향을 받는 API
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기