Windows-munkafolyamat áttekintése
A munkafolyamatok olyan elemi egységek, úgynevezett tevékenységek , amelyek egy valós folyamatot leíró modellként vannak tárolva. A munkafolyamatok lehetővé teszik a végrehajtás sorrendjének és a rövid vagy hosszú ideig futó munkadarabok közötti függő kapcsolatok leírását. Ez a munka az elejétől a végéig halad végig a modellen, és a tevékenységeket személyek vagy rendszerfüggvények hajthatják végre.
Munkafolyamat futásidejű motorja
Minden futó munkafolyamat-példányt egy folyamaton belüli futásidejű motor hoz létre és tart fenn, amellyel a gazdafolyamat az alábbiak egyikével kommunikál:
A WorkflowInvoker, amely metódusként hívja meg a munkafolyamatot.
Egy WorkflowApplication munkafolyamat-példány végrehajtásának explicit vezérlésére szolgáló beállítás.
Üzenetalapú WorkflowServiceHost interakciók többpéldányos forgatókönyvekben.
Mindegyik osztály a tevékenység végrehajtásáért felelősként képviselt alapvető tevékenység-futtatókörnyezetet ActivityInstance burkolja. Egy alkalmazástartományon belül egyszerre több ActivityInstance objektum is futhat.
Az előző három gazdagép-interakciós objektum mindegyike munkafolyamat-programnak nevezett tevékenységfából jön létre. Az ilyen típusok vagy egy körbefuttatható ActivityInstanceegyéni gazdagép használatával munkafolyamatok bármely Windows-folyamaton belül végrehajthatók, beleértve a konzolalkalmazásokat, az űrlapalapú alkalmazásokat, a Windows-szolgáltatásokat, a ASP.NET webhelyeket és a Windows Communication Foundation (WCF) szolgáltatásokat.
Munkafolyamat-összetevők a gazdagépfolyamatban
Munkafolyamat-összetevők közötti interakció
Az alábbi ábra bemutatja, hogyan működnek együtt a munkafolyamat-összetevők.
Az előző ábrán az Invoke osztály metódusa WorkflowInvoker több munkafolyamat-példány meghívására szolgál. WorkflowInvoker olyan egyszerűsített munkafolyamatokhoz használható, amelyekhez nincs szükség a gazdagép felügyeletére; a gazdagépről felügyeletre szoruló munkafolyamatokat (például Bookmark újrakezdés) ehelyett végre kell hajtani Run . Nem szükséges megvárni, amíg az egyik munkafolyamat-példány befejeződik, mielőtt másikat kérnénk fel; a futtatókörnyezeti motor több munkafolyamat-példány egyidejű futtatását is támogatja. A meghívott munkafolyamatok a következők:
Gyermektevékenységet SequenceWriteLine tartalmazó tevékenység. A Variable szülőtevékenység egy része a gyermektevékenységhez InArgument van kötve. A változókkal, argumentumokkal és kötésekkel kapcsolatos további információkért lásd: Változók és argumentumok.
Az egyéni tevékenység neve
ReadLine
. A tevékenység egy OutArgument részeReadLine
visszakerül a hívási Invoke metódusba.Az absztrakt osztályból CodeActivity származó egyéni tevékenység. A CodeActivity futásidejű funkciók (például a nyomon követés és a CodeActivityContext tulajdonságok) a metódus paramétereként Execute elérhető módon érhetők el. Ezekről a futásidejű funkciókról további információt a Munkafolyamat-nyomon követés és nyomkövetés, valamint a munkafolyamat-végrehajtás tulajdonságai című témakörben talál.