Állapotgép-munkafolyamatok
Az állapotgép egy jól ismert paradigma a programok fejlesztéséhez. A StateMachine tevékenység és Stateaz egyéb Transitiontevékenységek felhasználhatók állapotgép-munkafolyamat-programok létrehozására. Ez a témakör áttekintést nyújt az állapotgép-munkafolyamatok létrehozásáról.
Állapotgép-munkafolyamat áttekintése
Az állapotgép-munkafolyamatok olyan modellezési stílust biztosítanak, amellyel eseményvezérelt módon modellezheti a munkafolyamatot. A StateMachine tevékenység az állapotgép logikáját alkotó állapotokat és áttűnéseket tartalmazza, és bárhol használható, ahol egy tevékenység használható. Az állapotgép-futtatókörnyezetben több osztály is létezik:
Állapotgép-munkafolyamat létrehozásához a rendszer állapotokat ad hozzá egy StateMachine tevékenységhez, és áttűnésekkel szabályozza az állapotok közötti folyamatot. Az első lépések oktatóanyagának Útmutató: Állapotgép-munkafolyamat létrehozása című lépésének következő képernyőképe egy állapotgép-munkafolyamatot jelenít meg három állapottal és három áttűnéssel. A Cél inicializálása a kezdeti állapot, amely a munkafolyamat első állapotát jelöli. Ezt a kezdő csomópontból a hozzá vezető vonal jelöli. A munkafolyamat végső állapota FinalState néven van elnevezve, és azt a pontot jelöli, ahol a munkafolyamat befejeződött.
Az állapotgép-munkafolyamatnak egy és csak egy kezdeti állapotúnak és legalább egy végső állapotnak kell lennie. Minden nem végleges állapotnak legalább egy áttűnéssel kell rendelkeznie. Az alábbi szakaszok az állapotok és áttűnések létrehozását és konfigurálását ismertetik.
Állapotok létrehozása és konfigurálása
Az A State olyan állapotot jelöl, amelyben egy állapotgép lehet. Ha hozzá szeretne adni egy State munkafolyamathoz, húzza az Állapottevékenység-tervezőt az Eszközkészlet Állapotgép szakaszából, StateMachine és helyezze egy tevékenységre a Windows-munkafolyamat Tervező felületén.
Ha kezdeti állapotként szeretne konfigurálni egy állapotot, kattintson a jobb gombbal az állapotra, és válassza a Beállítás kezdeti állapotként lehetőséget. Továbbá, ha nincs aktuális kezdeti állapot, a kezdeti állapot kijelölhető úgy, hogy a munkafolyamat tetején lévő Start csomópontról a kívánt állapotba húz egy vonalat. Amikor egy StateMachine tevékenység bekerül a munkafolyamat-tervezőbe, az előre konfigurálva van egy State1 nevű kezdeti állapottal. Az állapotgép-munkafolyamatoknak csak egy kezdeti állapotúnak kell lenniük.
Az állapotgép záró állapotát záró állapotnak nevezzük. A végső állapot olyan állapot, amelynek a tulajdonsága IsFinal be van állítva true
, nincs Exit tevékenysége, és nem származik áttűnés. Ha végleges állapotot szeretne hozzáadni egy munkafolyamathoz, húzza a FinalState tevékenységtervezőt az Eszközkészlet Állapotgép szakaszából, és helyezze át egy StateMachine tevékenységre a Windows-munkafolyamat Tervező felületén. Az állapotgép-munkafolyamatnak legalább egy végső állapotúnak kell lennie.
Belépési és kilépési műveletek konfigurálása
Egy állapotnak lehet egy Entry és egy művelete Exit . (A végleges állapotként konfigurált állapotnak csak belépési művelete lehet). Amikor egy munkafolyamat-példány belép egy állapotba, a bejegyzési műveletben szereplő tevékenységek végrehajtása történik. Amikor a belépési művelet befejeződött, az állapotváltások eseményindítói ütemezve lesznek. Ha egy másik állapotra való áttérés megerősítést nyer, a rendszer végrehajtja a kilépési művelet tevékenységeit, még akkor is, ha az állapot visszaáll ugyanarra az állapotra. A kilépési művelet befejeződése után az áttűnési művelet tevékenységei végre lesznek hajtva, majd az új állapotra kerülnek át, és a belépési műveletek ütemezve lesznek.
Feljegyzés
Állapotgép-munkafolyamat hibakeresésekor töréspontok helyezhetők el a gyökérállapot-gép tevékenységére és állapotára az állapotgép-munkafolyamaton belül. A töréspontok nem helyezhetők közvetlenül az áttűnésekre, de az állapotokon és áttűnéseken belüli tevékenységekre is elhelyezhetők.
Áttűnések létrehozása és konfigurálása
Minden államnak legalább egy áttűnéssel kell rendelkeznie, kivéve a végleges állapotot, amely nem feltétlenül rendelkezik áttűnésekkel. Az áttűnések akkor vehetők fel, ha egy állapot hozzáadódik egy állapotgép munkafolyamatához, vagy az állapot elvetése után hozhatók létre.
State Ha egy lépésben szeretne áttűnést létrehozni, húzzon egy állapottevékenységetaz Eszközkészlet Állapotgép szakaszából, és mutasson rá egy másik állapotra a munkafolyamat-tervezőben. Ha a húzással State egy másik Statefölé kerül, négy háromszög jelenik meg a másik Statekörül . Ha a rendszer a State négy háromszög egyikére veti a elemet, a rendszer hozzáadja az állapotgéphez, és áttűnést hoz létre a forrásból State az elvetett célhelyre State. További információ: Áttűnési tevékenység Tervező.
Ha egy állapot hozzáadása után szeretne áttűnést létrehozni, két lehetőség közül választhat. Az első lehetőség az, hogy húzza az állapotot a munkafolyamat-tervező felületéről, mutasson rá egy meglévő állapotra, és helyezze az egyik legördülő pontra. Ez hasonló az előző szakaszban leírt módszerhez. Az egérmutatót a kívánt forrásállapot fölé is rámutathatja, és húzhat egy vonalat a kívánt célállapotra.
Feljegyzés
Egy állapotgép egyetlen állapota legfeljebb 76 áttűnést hozhat létre a munkafolyamat-tervezővel. A tervezőn kívül létrehozott munkafolyamatok állapotának áttűnésekre vonatkozó korlátját csak a rendszererőforrások korlátozzák.
Az áttűnés lehet egy Trigger, egy Conditionés egy Action. Az áttűnések Trigger akkor lesznek ütemezve, ha az áttűnés forrásállapotának művelete Entry befejeződött. Általában olyan Trigger tevékenység, amely valamilyen esemény bekövetkeztére vár, de bármilyen tevékenység lehet, vagy egyáltalán nem. A tevékenység befejezése után a TriggerCondition(ha van) kiértékelése megtörténik. Ha nincs Trigger tevékenység, akkor az Condition azonnal kiértékelésre kerül. Ha a feltétel kiértékelése így történik, az áttűnés false
megszakad, és az Trigger állapotból való összes áttűnés tevékenységét újraütemezi a rendszer. Ha vannak más áttűnések is, amelyek az aktuális áttűnés forrásállapotával azonosak, akkor a Trigger program ezeket a műveleteket is megszakítja és újraütemezi. Ha a Condition kiértékelés true
eredménye , vagy nincs feltétel, akkor a rendszer végrehajtja a Exit forrásállapot műveletét, majd végrehajtja az Action áttűnést. Amikor a művelet befejeződik, a Action vezérlő a Cél állapotba kerül
A közös eseményindítót használó áttűnéseket megosztott eseményindító-áttűnéseknek nevezzük. A megosztott eseményindító-áttűnések csoportjának minden áttűnése ugyanazzal az eseményindítóval rendelkezik, de egyedi Condition és művelet. Ha további műveleteket szeretne hozzáadni egy áttűnéshez, és közös áttűnést szeretne létrehozni, kattintson arra a körre, amely jelzi a kívánt áttűnés kezdetét, és húzza a kívánt állapotba. Az új áttűnés ugyanazzal az eseményindítóval fog rendelkezni, mint a kezdeti áttűnés, de egyedi feltétellel és műveletlel fog rendelkezni. A megosztott áttűnések az áttűnési tervezőn belülről is létrehozhatók, ha az áttűnési tervező alján a Megosztott eseményindító áttűnés hozzáadása elemre kattint, majd kiválasztja a kívánt célállapotot az Elérhető állapotokból a legördülő listához való csatlakozáshoz.
Feljegyzés
Vegye figyelembe, hogy ha egy Condition áttűnés kiértékelése (vagy egy megosztott eseményindító-áttűnés False
összes feltétele kiértékelése) lesz, az áttűnés nem fog bekövetkezni False
, és az állapotból való összes átmenet összes eseményindítója újra lesz ütemezve.
Az állapotgép-munkafolyamatok létrehozásával kapcsolatos további információkért lásd: Állapotgép-munkafolyamat létrehozása, StateMachine tevékenység Tervező, Állapottevékenység Tervező, FinalState tevékenység Tervező és áttűnési tevékenység Tervező.
State Machine Terminológia
Ez a szakasz a jelen témakör során használt állapotgép-szókészletet határozza meg.
Állapot
Az állapotgépet alkotó alapegység. Az állapotszámítógépek bármikor egy állapotban lehetnek.
Belépési művelet
Az állapot megadásakor végrehajtott tevékenység
Kilépési művelet
Az állapotból való kilépéskor végrehajtott tevékenység
Váltás
Irányított kapcsolat két állapot között, amely egy állapotgép teljes válaszát jelzi egy adott típusú esemény bekövetkezésére.
Megosztott áttűnés
Egy olyan áttűnés, amely egy forrásállapotot oszt meg, és egy vagy több áttűnéssel aktiválódik, de egyedi feltétellel és művelettel rendelkezik.
Eseményindító
Egy eseményindító tevékenység, amely átmenetet okoz.
Feltétel
Egy kényszer, amelyet az eseményindító után kell kiértékelni true
ahhoz, hogy az áttűnés befejeződjön.
Áttűnési művelet
Egy bizonyos áttűnés végrehajtásakor végrehajtott tevékenység.
Feltételes áttűnés
Áttűnés explicit feltétellel.
Önáttűnés
Áttűnés, amely egy állapotból önmagába halad át.
Kezdeti állapot
Az állapotgép kiindulási pontját jelképező állapot.
Végleges állapot
Az állapotgép befejezését jelképező állapot.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: