Tessa.Platform.Caching - пространство имён

Классы и вспомогательные методы для организации кэширования.

Классы

ConcurrentKeyCache<T> Кэш, осуществляющий перевод строго типизированных ключей в строки и наоборот. К кэшу возможен неблокирующий доступ из нескольких потоков.
ConcurrentKeyCache<T>.Global Класс, содержащий ссылку на глобальный кэш объектов типа T.
GlobalCache<TEventArgs> Потокобезопасный кэш, обеспечивающий синхронный сброс кэша всех экземпляров с заданным именем независимо от того, располагаются ли такие экземпляры в том же приложении или в другом процессе.
GlobalCacheInvalidationContext Контекст объекта, выполняющего инвалидацию глобального кеша.
GlobalCacheLock

Объект, отвечающий за глобальную блокировку кэшей между собой.

В отличии от AsyncLock, последующие вызовы ExecuteReaderAsync(Func<CancellationToken, ValueTask>, CancellationToken) и ExecuteWriterAsync(Func<CancellationToken, ValueTask>, CancellationToken) ниже по стеку будут выполняться в рамках уже взятой блокировки.

Рекомендуется использовать в методах, которые могут использовать другие кэши (например, GetAsync<T>(Func<CancellationToken, Task<T>>, Func<CancellationToken, Task<T>>, Boolean, CancellationToken) при заполнении кэша или InvalidateLocalCacheAsync(TEventArgs) при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.

Интерфейсы

IGlobalCacheInvalidationContext Контекст объекта, выполняющего инвалидацию глобального кеша.
IGlobalCacheLock

Объект, отвечающий за глобальную блокировку кэшей между собой.

В отличии от AsyncLock, последующие вызовы ExecuteReaderAsync(Func<CancellationToken, ValueTask>, CancellationToken) и ExecuteWriterAsync(Func<CancellationToken, ValueTask>, CancellationToken) ниже по стеку будут выполняться в рамках уже взятой блокировки.

Рекомендуется использовать в методах, которые могут использовать другие кэши (например, GetAsync<T>(Func<CancellationToken, Task<T>>, Func<CancellationToken, Task<T>>, Boolean, CancellationToken) при заполнении кэша или InvalidateLocalCacheAsync(TEventArgs) при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.

IKeyCache<T> Кэш, осуществляющий перевод строго типизированных ключей в строки и наоборот.