Partager via


Gestionnaire d'annulation sur une activité compensable

Cette rubrique s'applique à Windows Workflow Foundation 4.

Cet exemple montre l'utilisation d'un gestionnaire d'annulation sur un CompensableActivity.

Cet exemple contient deux scénarios qui illustrent l'utilisation de l'annulation CompensableActivity. Le premier scénario contient une activité compensable racine qui contient trois activités compensables enfants. Deux activités enfants terminent l'exécution de leurs corps d'activité avec succès. Lorsque le troisième corps d'activité enfant s'exécute, il rencontre une exception gérée en annulant le traitement de la troisième activité, après quoi l'annulation de l'activité racine est déclenchée. La logique dans l'activité racine de cet exemple consiste à compenser les deux autres activités enfants terminées précédemment.

Try
{
    CA 
    {
        CA1 
        {
        }
        CA2
        {
        }
        CA3
        {
            //Exception here
            // Then this will get cancelled
        }

       // Cancellation for the root activity automatically gets called, which, in turn, adds some logic to revert what was done (Or can decide to actually confirm CA1 & CA2 if the user so desires).
    }
}
Catches {
// Can do more stuff...
}

Le deuxième scénario illustre l'exécution d'un TryCatch en parallèle avec un Delay, qui finit avant la branche TryCatch. La condition d'achèvement a la valeur true une fois que la première branche est terminée, ce qui provoque l'annulation de l'autre branche.

Parallel 
{
    Branch1 
    {
        // Small Delay that times out (timeout1) before branch2.
    }
    Branch2 
    {
        CA 
        {
            CA1 
            {
            }
            CA2 
            {
            }
            CA3 
            {
            }
            If (timeout1)  
            {
                call Cancel CA
            }
        }
    }
}

Pour configurer, générer et exécuter l'exemple

  1. À l'aide de Visual Studio 2010, ouvrez CompensationCancellation.sln.

  2. Générez l'exemple en appuyant sur F6 ou sélectionnez Générer la solution dans le menu Générer.

  3. Exécutez l'exemple en appuyant sur F5 ou sélectionnez Démarrer le débogage dans le menu Déboguer. Vous pouvez également appuyer sur Ctrl+F5 ou sélectionner Exécuter sans débogage dans le menu Déboguer.

Dd807518.Important(fr-fr,VS.100).gif 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\Compensation\CompensationCancellation