Share via


Fonctionnement du modèle d'état d'activité

Une activité peut avoir six états au cours de sa durée de vie. Ces états sont Initialized, Executing, Canceling, Closed, Compensating et Faulting.

Au cours de l'état Initialized, une classe ActivityExecutionContext est créée pour l'activité et d'autres détails d'initiation spécifiques à cette activité sont exécutés. Par exemple, certaines activités Windows Workflow Foundation, telles que SuspendActivity, vérifient s'il existe une activité composite parente pendant l'initialisation.

Lorsqu'une activité passe à l'état Executing, les fonctionnalités principales de cette activité sont effectuées.

Une activité est mise explicitement à l'état Canceling par une activité parente ou parce qu'une exception a été levée pendant l'exécution de cette activité.

L'état Closed est le dernier état et est l'état définitif d'une activité. La seule exception se produit lorsqu'une activité prend fin mais doit ensuite passer à l'état Compensating en fonction de la logique métier. L'activité passe ensuite de l'état Closed à Compensating, puis revient à l'état Closed une fois la logique de compensation terminée. Pour plus d'informations sur la compensation, consultez Utilisation de la compensation dans les workflows et Utilisation de l'activité CompensateActivity.

Si une exception est levée au cours de l'état Executing, Canceling ou Compensating d'une activité, elle passe à l'état Faulting.

Le diagramme de flux suivant montre comment une activité passe aux différents états d'activité.

Diagramme de modèle d'état d'activité

La ligne rouge pleine indique que le moteur d'exécution de workflow est responsable du passage d'une activité de l'état Initialized à l'état Executing, ou de l'état Closed à l'état Compensating.

La ligne jaune pleine indique que l'activité parente est responsable du passage d'une activité enfant de l'état Executing à l'état Closed. Si vous créez une activité composite personnalisée, vous devez gérer ces états vous-même.

La ligne bleue pleine indique que le moteur d'exécution de workflow est responsable du passage d'une activité de l'état Executing à l'état Canceling, ou de l'état Compensating à l'état Faulting.

La ligne jaune en pointillés indique que le moteur d'exécution de workflow est responsable du passage d'une activité de l'état Canceling à l'état Compensating, ou de l'état Faulting à l'état Closed.

NoteRemarque :

Une activité ne peut pas passer de l'état Closed à l'état Executing. Toute tentative dans ce sens provoque la levée d'une exception à partir de l'appel à la méthode Execute.

Une activité peut uniquement se fermer lorsque toutes les activités enfants sont à l'état Closed ou Initialized. Cette règle étant récursive, cela signifie que l'arborescence entière, située au-dessous d'une activité qui essaie de se fermer doit être à l'état Closed ou Initialized pour que l'appel s'accomplisse.

Voir aussi

Concepts

Fonctionnement du contexte d'exécution des activités

Autres ressources

Activités Windows Workflow Foundation

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.