Gestore di annullamento nell'attività compensabile

Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.

In questo esempio viene illustrato l'utilizzo di un gestore di annullamento in un oggetto CompensableActivity.

Nell'esempio sono disponibili due scenari in cui viene illustrato l'utilizzo dell'annullamento dell'oggetto CompensableActivity. Nel primo scenario è inclusa un'attività compensabile radice che contiene tre attività compensabili figlio. Le due attività figlio completano correttamente l'esecuzione dei relativi corpi delle attività. Quando viene eseguito il corpo della terza attività figlio, viene rilevata un'eccezione gestita annullando l'elaborazione della terza attività, dopo che viene attivato l'annullamento dell'attività radice. La logica nell'attività radice in questo esempio consiste nel compensare le altre due attività figlio che vengono completate precedentemente.

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...
}

Nel secondo scenario viene illustrata l'esecuzione di un oggetto TryCatch in parallelo con un oggetto Delay che termina prima del ramo TryCatch. La condizione di completamento viene impostata su true una volta terminato il primo ramo, determinando l'annullamento dell'altro ramo.

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

Per impostare, compilare ed eseguire l'esempio

  1. In Visual Studio 2010 aprire CompensationCancellation.sln.

  2. Compilare l'esempio premendo F6 o selezionare "Compila soluzione" dal menu Compila.

  3. Eseguire l'esempio premendo F5 o selezionare "Avvia debug" dal menu Debug. In alternativa, è possibile premere Ctrl+F5 o selezionare "Avvia senza eseguire debug" dal menu Debug.

Dd807518.Important(it-it,VS.100).gif Nota:
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.

<UnitàInstallazione>:\WF_WCF_Samples

Se questa directory non esiste, andare alla sezione relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WF\Basic\Compensation\CompensationCancellation