Informazioni sul modello di stati dell'attività

Esistono sei diversi stati in cui può trovarsi un'attività: Initialized, Executing, Canceling, Closed, Compensating e Faulting.

Durante lo stato Initialized, per l'attività è stata creata una classe ActivityExecutionContext e sono stati eseguiti altri dettagli di avvio specifici dell'attività. Ad esempio, in alcune attività di Windows Workflow Foundation, quali SuspendActivity, durante l'inizializzazione viene verificata la presenza di un'attività composta padre.

Quando un'attività passa allo stato Executing, viene eseguita la funzionalità principale dell'attività.

Un'attività viene impostata sullo stato Canceling da un'attività padre in modo esplicito oppure a causa di un'eccezione durante l'esecuzione dell'attività.

Lo stato Closed è lo stato finale di un'attività. L'unica eccezione è rappresentata dal caso di un'attività che viene completata, ma che deve successivamente superare lo stato Compensating in base alla regola business. L'attività esegue la transizione dallo stato Closed allo stato Compensating, quindi nuovamente allo stato Closed dopo che la logica di compensazione è stata completata. Per ulteriori informazioni sulla compensazione, vedere Utilizzo della compensazione nei flussi di lavoro e Utilizzo dell'attività CompensateActivity.

Se viene generata un'eccezione durante lo stato Executing, Canceling o Compensating di un'attività, l'attività passerà allo stato Faulting.

Il diagramma di flusso seguente mostra la modalità di transizione tra i vari stati di un'attività.

Diagramma del modello di stati dell'attività

La linea rossa continua rappresenta il motore di runtime del flusso di lavoro responsabile della transizione di un'attività dallo stato Initialized allo stato Executing o dallo stato Closed allo stato Compensating.

La linea gialla continua rappresenta l'attività padre responsabile della transizione di un'attività figlio dallo stato Executing allo stato Closed. Se viene creata un'attività composta personalizzata, è necessario gestirla manualmente.

La linea blu continua rappresenta il motore di runtime del flusso di lavoro responsabile della transizione di un'attività dallo stato Executing, Canceling o Compensating allo stato Faulting.

La linea gialla tratteggiata rappresenta il motore di runtime del flusso di lavoro responsabile della transizione di un'attività dallo stato Canceling, Compensating o Faulting allo stato Closed.

Nota

Un'attività non può passare dallo stato Closed allo stato Executing. Qualsiasi tentativo di eseguire questa transizione determina la generazione di un'eccezione dalla chiamata al metodo Execute.

Un'attività può essere chiusa solo quando tutte le relative attività figlio si trovano nello stato Closed o Initialized. Trattandosi di una regola ricorsiva, perché la chiamata abbia esito positivo l'intera struttura relativa a un'attività che sta tentando la chiusura deve trovarsi nello stato Closed o Initialized.

Vedere anche

Concetti

Informazioni sul contesto di esecuzione delle attività

Altre risorse

Attività di Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.