GlobalCacheTPayload - класс

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

Definition

Пространство имён: Tessa.Platform.Caching
Сборка: Tessa (в Tessa.dll) Версия: 4.1.3+7e2b1422f9b8c7c41fbbc4b151a843bed05319ab
C#
public abstract class GlobalCache<TPayload> : PayloadSharedEventReceiverBase<TPayload>
where TPayload : class, new(), IStorageSerializable
Inheritance
Object    PayloadSharedEventReceiverBaseTPayload    GlobalCacheTPayload
Derived
Подробнее

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

TPayload
Информация по событию, сериализуемая между процессами. Тип должен реализовывать интерфейс IStorageSerializable.

Заметки

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

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

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

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

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

Свойства

Dependencies Зависимости объекта GlobalCacheTPayload
EventID Идентификатор глобального события. Должен быть уникален для каждого события.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)
InterprocessCommunicationIsEnabled Возвращает признак того, что кэш использует коммуникацию между процессами. Значение false определяет, что кэш перестаёт быть глобальным и кэширует данные только в текущем объекте.
IsDisposedПризнак того, что ресурсы объекта были освобождены.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)
IsEventSubscribed Признак того, что объект подписан на событие.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)

Методы

AcquireCheckDisposedLockAsync Выполняет взятие блокировки, внутри которой гарантированно не будет вызвано освобождение текущего объекта DisposeAsync. После вызова метода проверьте свойство IsDisposed. При освобождении возвращённого объекта блокировка снимается.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)
AddInvalidatedHandlerAsync Добавляет обработчик события, которое содержит вызовы на сброс внешнего кэша, зависимого от текущего кэша.
DisposeAsyncОсвобождает ресурсы, занимаемые объектом.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)
DisposeCoreAsyncPerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
(Переопределяет PayloadSharedEventReceiverBaseTPayloadDisposeCoreAsync)
EnsureEventSubscribedAsync Выполняет подписку на глобальное событие, если объект ещё не был подписан.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)
EnsureInvalidateCacheSubscribedAsync Выполняет подписку на глобальное событие сброса кэша, если объект ещё не был подписан.
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 Инициирует заполнение кэша при необходимости и возвращает запрошенное из кэша значение.
GetGlobalCacheInvalidationContext Возвращает текущий контекст глобальной инвалидации кэшей, используемый для оптимизации инвалидаций нескольких кэшей сразу или многократной инвалидации одного кэша (как при импорте набора карточек).
GetHashCodeServes as the default hash function.
(Унаследован от Object)
GetTypeGets the Type of the current instance.
(Унаследован от Object)
InvalidateGlobalCacheAsync Инициирует глобальный сброс кэша. Он затрагивает как текущий, так и другие экземпляры кэша с тем же именем, которые могут располагаться в других процессах.
InvalidateLocalCacheAsync Инициирует локальный сброс кэша (в текущем экземпляре).
InvalidateLocalCacheCoreAsync Метод, реализующий логику сброс кэша в текущем экземпляре, определяемую в конкретных классах кэшей. Для вызова инвалидации используйте метод InvalidateLocalCacheAsync(TPayload).
MemberwiseCloneCreates a shallow copy of the current Object.
(Унаследован от Object)
NotifyEventAsync Отправляет информацию по событию всем его обработчикам (включая текущий объект, если он был подписан вызовом EnsureEventSubscribedAsync(CancellationToken)).
(Унаследован от PayloadSharedEventReceiverBaseTPayload)
OnEventReceivedAsync Метод, выполняющий обработку полученного события (которое могло быть отправлено как в текущем, так и в другом процессе).
(Переопределяет PayloadSharedEventReceiverBaseTPayloadOnEventReceivedAsync(TPayload, SharedEventSource))
RemoveInvalidatedHandler Удаляет обработчик события, которое содержит вызовы на сброс внешнего кэша, зависимого от текущего кэша.
SubscribeEventAsync Подписывается на глобальное событие. Метод выполняется в блокировке и только, если подписка ещё не выполнялась. Может быть переопределён в наследниках.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)
ToStringReturns a string that represents the current object.
(Унаследован от Object)
TryGetAsyncT Возвращает запрошенное из кэша значение или null, если значение отсутствует.
UnsubscribeEventAsync Отписывается от глобального события. Метод выполняется в блокировке и не должен выполнять действий, если подписки не было. Может быть переопределён в наследниках.
(Унаследован от PayloadSharedEventReceiverBaseTPayload)

См. также