IGlobalCacheLock - интерфейс

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

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

Рекомендуется использовать в методах, которые могут использовать другие кэши (например, [!:GlobalCache<TPayload>.GetAsync<T>(Func<CancellationToken, ValueTask<T>>, Func<CancellationToken, ValueTask<T>>, bool, CancellationToken)] при заполнении кэша или InvalidateLocalCacheAsync(TPayload) при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.

Definition

Пространство имён: Tessa.Platform.Caching
Сборка: Tessa (в Tessa.dll) Версия: 4.2.1+2efecbe35c10dec386bb05925f2876c4acbb708d
C#
public interface IGlobalCacheLock

Методы

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

См. также