Condividi tramite


Utilizzo dell'attività CancellationScope

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

Nell'esempio viene illustrato come utilizzare l'attività CancellationScope per annullare il lavoro in un'applicazione.

Molti componenti e servizi di livello intermedio si basano sul noto costrutto di programmazione delle transazioni per gestire l'annullamento. Esistono tuttavia molte situazioni nelle quali è necessario annullare il lavoro che non può essere eseguito in una transazione. L'utilizzo dell'annullamento risulta più difficile dell'utilizzo di transazioni, perché di lavoro è necessario annullare deve prima essere rilevato. A questo scopo in .NET Framework 4 è disponibile l'attività CancellationScope.

È possibile attivare l'annullamento dall'interno un'attività o dall'elemento padre dell'attività. Le attività figlio sono pianificate dall'attività padre (ad esempio Sequence, Parallel, Flowchart o da una CompositeActivity personalizzata). L'attività padre può annullare le attività figlio per qualsiasi motivo. Ad esempio, un'attività Parallel con tre rami figlio annullerà i rami figlio restanti quando completa un ramo e l'espressione CompletionCondition restituisce true. Il flusso di lavoro può essere annullato anche esternamente dall'applicazione host chiamando Cancel.

Per utilizzare l'attività CancellationScope, inserire il lavoro che deve essere annullato nella proprietà Body e inserire il lavoro eseguito dopo l'annullamento nella proprietà CancellationHandler.

In questo esempio viene illustrato l'annullamento di un'attività dall'interno dell'attività stessa.

Lo scenario utilizzato nell'esempio per illustrare l'attività CancellationScope è un cliente che desidera acquistare il prima possibile un biglietto per Miami. Due agenzie di viaggio desiderano concludere l'affare. Nell'esempio vengono utilizzati due oggetti CancellationScope all'interno di un'attività Parallel per modellare questa logica di business. L'oggetto CompletionCondition dell'attività Parallel viene impostato su true. Poiché CompletionCondition viene controllato dopo il completamento di qualsiasi ramo, questo farà in modo che il ramo restante venga annullato dopo il completamento del primo ramo. L'acquisto del biglietto viene richiesto dall'applicazione client a entrambe le agenzie e quando la prima conferma che il biglietto è stato acquistato, l'ordine all'altra agenzia viene annullato automaticamente.

Per utilizzare questo esempio

  1. In Visual Studio 2010 aprire il file della soluzione CancelationScopeXAML.sln.

  2. Per compilare la soluzione, premere F6.

  3. Per eseguire la soluzione, premere CTRL+F5.

Dd807382.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, visitare la pagina relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi di Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WF\Basic\Built-InActivities\CancellationScope