Utilisation de CancellationScope
Cette rubrique s'applique à Windows Workflow Foundation 4.
Cet exemple montre comment utiliser l'activité CancellationScope pour annuler un travail dans une application.
De nombreux composants et services de niveau intermédiaire comptent sur la construction de programmation connue des transactions pour gérer l'annulation pour eux. Toutefois, dans un certain nombre de cas, le travail qui ne peut pas être fait dans une transaction doit être annulé. Il est plus difficile d'utiliser l'annulation que d'utiliser des transactions, car le travail qui doit être annulé doit être d'abord suivi. .NET Framework 4 vous y aide en fournissant une activité CancellationScope.
L'annulation peut être déclenchée à partir d'une activité ou à partir du parent de l'activité. Les activités enfants sont planifiées par leur activité parente (telles qu'un Sequence, un Parallel, un Flowchart ou une activité composite personnalisée). L'activité parente peut annuler des activités enfants pour n'importe quelle raison. Par exemple, une activité Parallel avec trois branches enfants annule les branches enfants restantes chaque fois qu'elle termine une branche et que l'expression CompletionCondition prend la valeur true. Le workflow peut également être annulé de manière externe par l'application hôte en appelant Cancel.
Pour utiliser l'activité CancellationScope, placez le travail qui doit être annulé dans la propriété Body, et placez le travail qui est effectué après l'annulation dans la propriété CancellationHandler.
Cet exemple illustre l'annulation d'une activité à partir de l'activité elle-même.
Le scénario utilisé par l'exemple pour illustrer l'activité CancellationScope est un client qui souhaite acheter dès que possible un billet pour Miami. Il y a deux agences de voyage qui souhaitent traiter l'affaire. L'exemple utilise deux CancellationScope dans une activité Parallel pour modéliser cette logique métier. Le CompletionCondition de l'activité Parallel a la valeur true ; étant donné que CompletionCondition est vérifié une fois chaque branche terminée, cela entraînera l'annulation de la branche restante après la fin de la première branche. L'application cliente demande aux deux agences d'acheter le billet, et lorsque la première confirme que le billet a été acheté, l'application annule la commande auprès de l'autre agence.
Pour utiliser cet exemple
À l'aide de Visual Studio 2010, ouvrez le fichier solution CancelationScopeXAML.sln.
Pour générer la solution, appuyez sur F6.
Pour exécuter la solution, appuyez sur CTRL+F5.
Remarque : |
---|
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.
<LecteurInstall>:\WF_WCF_Samples
Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.
<LecteurInstall>:\WF_WCF_Samples\WF\Basic\Built-InActivities\CancellationScope
|