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, CancellationToken) при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.

Definition

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

Методы

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

См. также