Översikt över Windows-arbetsflöde
Ett arbetsflöde är en uppsättning elementenheter som kallas aktiviteter som lagras som en modell som beskriver en verklig process. Arbetsflöden är ett sätt att beskriva körningsordningen och beroende relationer mellan delar av kort- eller tidskrävande arbete. Det här arbetet går igenom modellen från början till slut och aktiviteter kan köras av personer eller av systemfunktioner.
Körningsmotor för arbetsflöde
Varje arbetsflödesinstans som körs skapas och underhålls av en pågående körningsmotor som värdprocessen interagerar med via något av följande:
En WorkflowInvoker, som anropar arbetsflödet som en metod.
En WorkflowApplication för explicit kontroll över körningen av en enda arbetsflödesinstans.
A WorkflowServiceHost för meddelandebaserade interaktioner i scenarier med flera instanser.
Var och en av dessa klasser omsluter kärnaktivitetskörningen som representeras som en ActivityInstance ansvarig för aktivitetskörning. Det kan finnas flera ActivityInstance objekt i en programdomän som körs samtidigt.
Vart och ett av de föregående tre objekten för värdinteraktion skapas från ett träd med aktiviteter som kallas ett arbetsflödesprogram. Med hjälp av dessa typer eller en anpassad värd som omsluter ActivityInstancekan arbetsflöden köras i valfri Windows-process, inklusive konsolprogram, formulärbaserade program, Windows-tjänster, ASP.NET webbplatser och WCF-tjänster (Windows Communication Foundation).
Arbetsflödeskomponenter i värdprocessen
Interaktion mellan arbetsflödeskomponenter
Följande diagram visar hur arbetsflödeskomponenter interagerar med varandra.
I föregående diagram Invoke används -metoden för WorkflowInvoker klassen för att anropa flera arbetsflödesinstanser. WorkflowInvoker används för enkla arbetsflöden som inte behöver hantering från värden. arbetsflöden som behöver hantering från värden (till exempel Bookmark återupptagande) måste köras med hjälp av Run i stället. Du behöver inte vänta tills en arbetsflödesinstans har slutförts innan du anropar en annan. körningsmotorn har stöd för att köra flera arbetsflödesinstanser samtidigt. De arbetsflöden som anropas är följande:
En Sequence aktivitet som innehåller en WriteLine underordnad aktivitet. En Variable av den överordnade aktiviteten är bunden till en InArgument av den underordnade aktiviteten. Mer information om variabler, argument och bindningar finns i Variabler och Argument.
En anpassad aktivitet med namnet
ReadLine
. En OutArgument avReadLine
aktiviteten returneras till anropande Invoke metod.En anpassad aktivitet som härleds från den CodeActivity abstrakta klassen. CodeActivity Kan komma åt körningsfunktioner (till exempel spårning och egenskaper) med hjälp av CodeActivityContext det som är tillgängligt som en parameter för Execute metoden. Mer information om dessa körningsfunktioner finns i Egenskaper för arbetsflödesspårning och spårning och arbetsflödeskörning.