Sdílet prostřednictvím


Oznámení

Často je vhodné reagovat na změny stavu. Všechna zpětná volání podléhají zárukám založeným na Orleanstazích; viz také část o zárukách souběžnosti.

Sledovat potvrzený stav

Pro informování o jakýchkoli změnách potvrzeného stavu mohou podtřídy tuto metodu přepsat:

protected override void OnStateChanged()
{
   // read state and/or event log and take appropriate action
}

OnStateChanged je volána při každé aktualizaci potvrzeného stavu, tj. zvýšení počtu verzí. K tomu může dojít v následujícím případě:

  1. Z úložiště se načetla novější verze stavu.
  2. Událost vyvolaná touto instancí byla úspěšně zapsána do úložiště.
  3. Zpráva s oznámením byla přijata z nějaké jiné instance.

Všimněte si, že protože všechna zrna mají původně verzi nula, je OnStateChanged voláno vždy, když se počáteční načtení z úložiště dokončí s verzí větší než nula.

Sledovat nezávazný stav

Pokud chcete být informováni o jakýchkoli změnách předběžného stavu, mohou podtřídy přepsat tuto metodu:

protected override void OnTentativeStateChanged()
{
   // read state and/or events and take appropriate action
}

OnTentativeStateChanged je volána vždy, když se nezávazný stav změní, tj. pokud se kombinovaná sekvence (ConfirmedEvents + UnconfirmedEvents) změní. Zejména ke zpětnému volání OnTentativeStateChanged() vždy dochází během RaiseEvent.