Condividi tramite


Panoramica del flusso di lavoro di Windows

Un flusso di lavoro è un set di unità elementali denominate attività archiviate come modello che descrive un processo reale. I flussi di lavoro consentono di descrivere l'ordine di esecuzione e le relazioni dipendenti tra parti di lavoro a breve o a esecuzione prolungata. Questo lavoro passa attraverso il modello dall'inizio alla fine e le attività possono essere eseguite da persone o da funzioni di sistema.

Motore di runtime del flusso di lavoro

Ogni istanza del flusso di lavoro in esecuzione viene creata e gestita da un motore di runtime in-process con cui il processo host interagisce tramite una delle operazioni seguenti:

  • Oggetto WorkflowInvoker, che richiama il flusso di lavoro come un metodo.

  • Un'entità WorkflowApplication per il controllo esplicito sull'esecuzione di una singola istanza del flusso di lavoro.

  • Oggetto WorkflowServiceHost per le interazioni basate su messaggi in scenari a istanze multiple.

Ognuna di queste classi avvolge il runtime dell'attività principale, rappresentato come ActivityInstance, responsabile dell'esecuzione dell'attività. Possono essere presenti diversi ActivityInstance oggetti all'interno di un dominio applicazione in esecuzione simultaneamente.

Ognuno dei tre oggetti di interazione host precedenti viene creato da un albero di attività denominato programma flusso di lavoro. Usando questi tipi o un host personalizzato che esegue il wrapping di ActivityInstance, i flussi di lavoro possono essere eseguiti all'interno di qualsiasi processo di Windows, incluse applicazioni console, applicazioni basate su moduli, Servizi Windows, ASP.NET siti Web e servizi Wcf (Windows Communication Foundation).

Componenti del flusso di lavoro nel processo host Componenti del flusso di lavoro nel processo host

Interazione tra componenti del flusso di lavoro

Il diagramma seguente illustra come i componenti del flusso di lavoro interagiscono tra loro.

Diagramma che mostra come interagiscono i componenti del flusso di lavoro.

Nel diagramma precedente il Invoke metodo della WorkflowInvoker classe viene usato per richiamare diverse istanze del flusso di lavoro. WorkflowInvoker viene usato per flussi di lavoro leggeri che non necessitano di gestione dall'host; i flussi di lavoro che richiedono la gestione dall'host ,ad esempio Bookmark la ripresa, devono essere eseguiti usando Run invece . Non è necessario attendere il completamento di un'istanza del flusso di lavoro prima di richiamare un altro; il motore di runtime supporta l'esecuzione simultanea di più istanze del flusso di lavoro. I flussi di lavoro richiamati sono i seguenti:

Vedere anche