IGlobalCacheLock - интерфейс
Объект, отвечающий за глобальную блокировку кэшей между собой.
В отличии от
AsyncLock, последующие вызовы
[!:ExecuteAsync] ниже по стеку
будут выполняться в рамках уже взятой блокировки.
Рекомендуется использовать в методах, которые могут использовать другие кэши (например,
[!:GlobalCache<TEventArgs>.GetAsync<T>(Func<CancellationToken, Task<T>>, Func<CancellationToken, Task<T>>, CancellationToken)]
при заполнении кэша
или
InvalidateLocalCacheAsync(TEventArgs, CancellationToken)
при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.
Пространство имён: Tessa.Platform.CachingСборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
public interface IGlobalCacheLock
Public Interface IGlobalCacheLock
public interface class IGlobalCacheLock
type IGlobalCacheLock = interface end
ExecuteReaderAsync |
Выполняет делегат в блокировке на чтение, при этом последующие вызовы [!:ExecuteAsync] ниже по стеку
будут выполняться в рамках уже взятой блокировки.
|
ExecuteWriterAsync |
Выполняет делегат в блокировке на запись, при этом последующие вызовы [!:ExecuteAsync] ниже по стеку
будут выполняться в рамках уже взятой блокировки.
|