GlobalCacheTEventArgs - класс

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

Definition

Пространство имён: Tessa.Platform.Caching
Сборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
C#
public abstract class GlobalCache<TEventArgs> : IAsyncDisposable
where TEventArgs : class, new(), ISharedEventArgs
Inheritance
Object    GlobalCacheTEventArgs
Derived
Подробнее
Implements
IAsyncDisposable

Параметры типа

TEventArgs
Аргументы события, сериализуемые между процессами. Тип должен реализовывать интерфейс ISharedEventArgs.

Заметки

Доступ на чтение из кэша и наполнение кэша осуществляет только синхронизацию между потоками для доступа к экземпляру, поэтому чтение может осуществляться сравнительно часто небольшими порциями.

Доступ к локальному кэшу экземпляра для его наполнения, сброса и чтения данных потокобезопасен и не требует дополнительной синхронизации.

Доступ и наполнение локального кэша возможно даже после освобождения объекта вызовом DisposeAsync, но после такого вызова все глобальные объекты синхронизации освобождаются и более не используются.

Конструкторы

GlobalCacheTEventArgs(String, IGlobalCacheLock, ISharedEventSubscriberFactory, Boolean) Создаёт экземпляр класса с указанием имени, являющегося глобально уникальным для экземпляров кэша, расположенных в различных процессах. Это рекомендуемый конструктор для создания базовых объектов глобального кэша.
GlobalCacheTEventArgs(String, String, Boolean, IGlobalCacheLock, ISharedEventSubscriberFactory, Boolean) Создаёт экземпляр класса с указанием имени, являющегося глобально уникальным для экземпляров кэша того же типа, расположенных в различных процессах.
GlobalCacheTEventArgs(String, String, Type, IGlobalCacheLock, ISharedEventSubscriberFactory, Boolean) Создаёт экземпляр класса с указанием имени, являющегося глобально уникальным для экземпляров кэша заданного типа instanceType, расположенных в различных процессах.

Свойства

InstanceName Имя экземпляра класса, являющееся глобально уникальным для экземпляров кэша того же типа, расположенных в различных процессах. Значение null определяет, что синхронизация не используется.
InstanceType Тип объекта, используемый для синхронизации экземпляров между потоками и процессами.
InterprocessCommunicationIsEnabled Возвращает признак того, что кэш использует коммуникацию между процессами. Значение false определяет, что кэш перестаёт быть глобальным и кэширует данные только в текущем объекте.
IsDisposedПризнак того, что ресурсы объекта были освобождены.

Методы

DisposeAsyncОсвобождает ресурсы, занимаемые объектом.
DisposeAsync(Boolean)Освобождает ресурсы, занимаемые объектом.
EnsureInvalidateCacheSubscribedAsync Выполняет подписку на глобальное событие сброса кэша, если объект ещё не был подписан. Метод следует вызывать только в том случае, если доступ к кэшируемым данным осуществляется не только через методы GetAsyncT(FuncCancellationToken, TaskT, FuncCancellationToken, TaskT, Boolean, CancellationToken) и TryGetAsyncT(FuncCancellationToken, TaskT, Boolean, CancellationToken).
EqualsDetermines whether the specified object is equal to the current object.
(Унаследован от Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Унаследован от Object)
GetAsyncT Инициирует заполнение кэша при необходимости и возвращает запрошенное из кэша значение.
GetHashCodeServes as the default hash function.
(Унаследован от Object)
GetTypeGets the Type of the current instance.
(Унаследован от Object)
InvalidateGlobalCacheAsync Инициирует глобальный сброс кэша, который затрагивает как текущий, так и другие экземпляры кэша с тем же именем, которые могут располагаться в других процессах.
InvalidateLocalCacheAsync Метод, реализующий сброс кэша в текущем экземпляре. Метод является потокобезопасным и может обращаться к кэшу без дополнительной синхронизации.
InvalidateLocalCacheOverrideAsync Метод, реализующий сброс кэша в текущем экземпляре. Метод является потокобезопасным и может обращаться к кэшу без дополнительной синхронизации. Любые необработанные исключения, возникшие внутри делегата, игнорируются с записью в лог.
MemberwiseCloneCreates a shallow copy of the current Object.
(Унаследован от Object)
ToStringReturns a string that represents the current object.
(Унаследован от Object)
TryGetAsyncT Возвращает запрошенное из кэша значение или null, если значение отсутствует.

События

Invalidated Событие, которое содержит вызовы на сброс внешнего кэша, зависимого от текущего кэша. Обработчики событий должны как можно более быстро выполнить код по сбросу кэша. Все исключения, возникшие в обработчиках, игнорируются с записью в лог.

Поля

InvalidatedEventName Семантическое имя события по сбросу кэша.

Методы расширения

Get
(Определяется ComHelper)
InternalMarkerCanvas Возвращает маркер аннотации
(Определяется AnnotationInternalsAccessor)
Invoke
(Определяется ComHelper)
RegisterInConstructorTEventArgs Выполняет регистрацию текущего глобального кэша cache в контейнере container. Все ресурсы глобального кэша могут быть освобождены, если регистрация в контейнере container завершена по причине того, что все объекты контейнера уже были освобождены. Возвращает признак того, что ресурсы глобального кэша не были освобождены.
(Определяется PlatformExtensions)
Set
(Определяется ComHelper)

См. также