Объект, отвечающий за глобальную блокировку кэшей между собой.
В отличии от AsyncLock, последующие вызовы ExecuteReaderAsync(FuncCancellationToken, ValueTask, CancellationToken) и ExecuteWriterAsync(FuncCancellationToken, ValueTask, CancellationToken) ниже по стеку будут выполняться в рамках уже взятой блокировки.
Рекомендуется использовать в методах, которые могут использовать другие кэши (например, GetAsyncT(FuncCancellationToken, TaskT, FuncCancellationToken, TaskT, Boolean, CancellationToken) при заполнении кэша или InvalidateLocalCacheAsync(TEventArgs, CancellationToken) при сбрасывании локального кэша), для исключения ситуации, когда два разных кэша могут брать блокировку друг на друга.
public interface IGlobalCacheLock
Public Interface IGlobalCacheLock
public interface class IGlobalCacheLock
type IGlobalCacheLock = interface end
ExecuteReaderAsync | Выполняет делегат в блокировке на чтение, при этом последующие вызовы ExecuteReaderAsync(FuncCancellationToken, ValueTask, CancellationToken) ниже по стеку будут выполняться в рамках уже взятой блокировки. |
ExecuteWriterAsync | Выполняет делегат в блокировке на запись, при этом последующие вызовы ExecuteWriterAsync(FuncCancellationToken, ValueTask, CancellationToken) ниже по стеку будут выполняться в рамках уже взятой блокировки. |