Dela via


Ö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 beroenderelationer mellan delar av kort- eller långvarigt 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örmotorn för arbetsflöden

Varje arbetsflödesinstans som körs skapas och underhålls av en in-process-relaterad körmotor som värdprocessen interagerar med via något av följande:

Var och en av dessa klasser omsluter den centrala aktivitetskörningen som representeras som en ActivityInstance och som ansvarar för att genomföra aktiviteter. 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
Arbetsflödeskomponenter i värdprocessen

Interaktion mellan arbetsflödeskomponenter

Följande diagram visar hur arbetsflödeskomponenter interagerar med varandra.

Diagram som visar hur arbetsflödeskomponenter interagerar.

I det föregående diagrammet används Invoke-metoden i WorkflowInvoker-klassen för att anropa flera arbetsflödesfall. 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 istä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:

Se även