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

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

Классы

ConcurrentKeyCacheT Кэш, осуществляющий перевод строго типизированных ключей в строки и наоборот. К кэшу возможен неблокирующий доступ из нескольких потоков.
ConcurrentKeyCacheTGlobal Класс, содержащий ссылку на глобальный кэш объектов типа T.
FakeGlobalCacheLock Реализация IGlobalCacheLock, не выполняющая блокировку.
GlobalCacheTPayload Потокобезопасный кэш, обеспечивающий синхронный сброс кэша всех экземпляров с заданным именем независимо от того, располагаются ли такие экземпляры в том же приложении или в другом процессе.
GlobalCacheDependencies Зависимости объекта GlobalCacheTPayload
GlobalCacheEvents Идентификаторы событий по инвалидации глобальных кэшей GlobalCacheTPayload, используемые в платформе.
GlobalCacheInvalidationContext Контекст объекта, выполняющего инвалидацию глобального кеша.
GlobalCacheLock

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

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

Рекомендуется использовать в методах, которые могут использовать другие кэши (например, GetAsyncT(FuncCancellationToken, ValueTaskT, FuncCancellationToken, ValueTaskT, Boolean, CancellationToken) при заполнении кэша или InvalidateLocalCacheAsync(TPayload) при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.

Интерфейсы

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

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

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

Рекомендуется использовать в методах, которые могут использовать другие кэши (например, GetAsyncT(FuncCancellationToken, ValueTaskT, FuncCancellationToken, ValueTaskT, Boolean, CancellationToken) при заполнении кэша или InvalidateLocalCacheAsync(TPayload) при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.

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