Sdílet prostřednictvím


Pracovní postupy stavových počítačů

Stavový počítač je dobře známé paradigma pro vývoj programů. Aktivita StateMachine spolu s aktivitami State, Transition a dalšími aktivitami mohou být použity k sestavení programů pracovních postupů v podobě stavového automatu. Toto téma obsahuje přehled vytváření pracovních postupů stavového počítače.

Přehled pracovního postupu stavových počítačů

Pracovní postupy stavových počítačů poskytují styl modelování, pomocí kterého můžete modelovat pracovní postup způsobem řízeným událostmi. Aktivita StateMachine obsahuje stavy a přechody, které tvoří logiku stavového počítače, a lze ji použít všude, kde se dá aktivita použít. Modul runtime stavového počítače má několik tříd:

Chcete-li vytvořit pracovní postup stavového stroje, stavy se přidávají do aktivity StateMachine a přechody se používají k řízení toku mezi stavy. Následující snímek obrazovky z průvodce Začínáme, krok Jak: Vytvořit pracovní postup stavového stroje, znázorňuje pracovní postup stavového stroje se třemi stavy a třemi přechody. Inicializace cíle je počáteční stav a představuje první stav v pracovním postupu. To určuje čára, která k němu vede z uzlu Start. Konečný stav pracovního postupu má název FinalState a představuje bod, ve kterém je pracovní postup dokončen.

Obrázek znázorňující dokončený pracovní postup stavového počítače

Pracovní postup stavového počítače musí mít jeden a pouze jeden počáteční stav a alespoň jeden konečný stav. Každý stav, který není konečným stavem, musí mít alespoň jeden přechod. Následující části se týkají vytváření a konfigurace stavů a přechodů.

Vytváření a konfigurace stavů

A State představuje stav, ve kterém může být stavový počítač. Pokud chcete přidat State do pracovního postupu, přetáhněte návrháře stavových aktivit z oddílu Stavový počítač na panelu nástrojů a přetáhněte ho na StateMachine aktivitu na ploše Návrháře pracovního postupu Systému Windows.

Snímek obrazovky sekce Stavový automat v sadě nástrojů

Chcete-li nakonfigurovat stav jako počáteční stav, klikněte pravým tlačítkem myši na stav a vyberte Nastavit jako počáteční stav. Navíc pokud neexistuje žádný aktuální počáteční stav, můžete počáteční stav určit přetažením řádku z uzlu Start v horní části pracovního postupu do požadovaného stavu. StateMachine Když je aktivita vyřazena do návrháře pracovního postupu, je předem nakonfigurována s počátečním stavem s názvem State1. Pracovní postup stavového počítače musí mít jeden a pouze jeden počáteční stav.

Stav, který představuje ukončovací stav ve stavovém počítači, se nazývá konečný stav. Konečný stav je stav, který má jeho IsFinal vlastnost nastavena na true, nemá žádnou Exit aktivitu a žádné přechody pocházející z něj. Chcete-li přidat konečný stav do pracovního postupu, přetáhněte návrhář aktivity FinalState z oddílu Stavový počítač panelu nástrojů a přesuňte ho na StateMachine aktivitu na ploše Návrháře pracovního postupu Systému Windows. Pracovní postup stavového počítače musí mít alespoň jeden konečný stav.

Konfigurace akcí vstupu a výstupu

Stav může mít Entry akci a Exit akci. (Stav nakonfigurovaný jako konečný stav může mít pouze akci zadávání). Když instance pracovního postupu přejde do stavu, spustí se všechny aktivity v akci zadávání. Po dokončení akce zadávání se aktivační události pro přechody stavu naplánují. Po potvrzení přechodu na jiný stav se aktivity v akci ukončení spustí, i když se stav vrátí zpět do stejného stavu. Po dokončení akce ukončení se aktivity v akci přechodu spustí, a následně se přejde do nového stavu a jeho vstupní akce se naplánují.

Poznámka:

Při ladění pracovního postupu strojového stavu mohou být body přerušení umístěny na aktivitu kořenového strojového stavu a na stavy v rámci pracovního postupu strojového stavu. Zarážky nemusí být umístěny přímo na přechody, ale mohou být umístěny na jakékoli činnosti obsažené ve státech a přechodech.

Vytváření a konfigurace přechodů

Všechny stavy musí mít alespoň jeden přechod s výjimkou konečného stavu, který nemusí mít žádné přechody. Přechody můžou být přidány po přidání stavu do pracovního postupu stavového počítače nebo se dají vytvořit při vyřazení stavu.

Pokud chcete přidat State a vytvořit přechod mezi stavy v jednom kroku, přetáhněte aktivitu State z oddílu Stavový počítačPanelu nástrojů a najeďte myší na jiný stav v návrháři pracovního postupu. Když je State přetažena nad jinou State, kolem druhého State se objeví čtyři trojúhelníky. State Pokud se přehodí na jeden ze čtyř trojúhelníků, přidá se do stavového počítače a vytvoří se přechod ze zdroje State do vyřazeného cíle State. Další informace naleznete v tématu Návrhář aktivity přechodu.

Pokud chcete vytvořit přechod po přidání stavu, existují dvě možnosti. První možností je přetáhnout stav z návrhové plochy návrháře pracovního postupu, umístit jej nad existující stav a položit ho na jeden z určených bodů. Podobá se metodě popsané v předchozí části. Můžete také najet myší na požadovaný stav zdroje a přetáhnout čáru do požadovaného cílového stavu.

Poznámka:

Jeden stav ve stavovém počítači může mít až 76 přechodů vytvořených pomocí návrháře pracovního postupu. Limit přechodu pro stav pracovních postupů vytvořených mimo návrháře je omezen pouze systémovými prostředky.

Přechod může mít Trigger, Condition a Action. Přechod Trigger je naplánován, když je akce zdrojového stavu Entry přechodu dokončena. Obvykle se jedná Trigger o aktivitu, která čeká na výskyt nějakého typu události, ale může to být jakákoli aktivita nebo vůbec žádná aktivita. Po dokončení aktivity Trigger se vyhodnotí Condition, pokud je k dispozici. Pokud není žádná aktivita Trigger, Condition se vyhodnotí okamžitě. Pokud se podmínka vyhodnotí jako false, přechod se zruší a aktivita Trigger pro všechny přechody ze stavu se přeplánuje. Pokud existují další přechody, které sdílejí stejný stav zdroje jako aktuální přechod, tyto Trigger akce se zruší a přeplánují také. Pokud se Condition vyhodnotí jako true, nebo neexistuje žádná podmínka, provede se akce zdrojového stavu Exit a poté se provede akce přechodu Action. Po dokončení Action se řízení předá do Cílového stavu.

Přechody, které sdílejí společný spouštěč, se označují jako přechody sdílených spouštěčů. Každý přechod ve skupině sdílených přechodů má stejný spouštěč, ale jedinečné Condition a akci. Pokud chcete do přechodu přidat další akce a vytvořit sdílený přechod, klikněte na kruh, který označuje začátek požadovaného přechodu, a přetáhněte ho do požadovaného stavu. Nový přechod bude sdílet stejnou aktivační událost jako počáteční přechod, ale bude mít jedinečnou podmínku a akci. Sdílené přechody lze v rámci návrhu přechodů vytvořit kliknutím na Přidat sdílený přechod spouštěče ve spodní části návrháře přechodů a výběrem požadovaného cílového stavu z rozevíracího seznamu dostupných stavů k připojení.

Poznámka:

Všimněte si, že pokud se Condition přechod vyhodnotí jako False (nebo pokud se všechny podmínky sdíleného triggeru přechodu vyhodnotí jako False), nedojde k přechodu a všechny triggery pro všechny přechody ze stavu budou přeplánovány.

Další informace o vytváření pracovních postupů stavového automatu naleznete v tématu Postupy: Vytvoření pracovního postupu stavového automatu, StateMachine Activity Designer, State Activity Designer, FinalState Activity Designer a Transition Activity Designer.

Terminologie stavových počítačů

Tato část definuje slovník stavového stroje používaný v tomto tématu.

Stát
Základní jednotka, která sestavuje stavový počítač. Stavový počítač může být v každém konkrétním okamžiku v jednom stavu.

Vstupní akce
Aktivita provedená při vstupu do stavu

Ukončit akci
Aktivita spuštěná při ukončení stavu

Přechod
Směrovaný vztah mezi dvěma stavy, které představují úplnou odpověď stavového počítače na výskyt události určitého typu.

Sdílený přechod
Přechod, který sdílí zdrojový stav a spouštěč s jedním nebo více přechody, ale má jedinečnou podmínku a akci.

Spouštěč
Aktivační aktivita, která způsobí, že dojde k přechodu.

Podmínka
Omezení, které se musí vyhodnotit na true po spuštění triggeru, aby se přechod dokončil.

Akce přechodu
Aktivita, která se provádí při provádění určitého přechodu.

Podmíněný přechod
Přechod s explicitní podmínkou.

Samopřechod
Přechod, který vede ze stavu zpět do stejného stavu.

Počáteční stav
Stav, který představuje výchozí bod stavového počítače.

Koncový stav
Stav, který představuje dokončení stavového počítače.

Viz také