Compartir a través de


Usar CancellationScope

Este tema es aplicable a Windows Workflow Foundation 4.

En este ejemplo se muestra cómo utilizar la actividad CancellationScope para cancelar el trabajo en una aplicación.

Muchos componentes y servicios de nivel intermedio confían en la conocida construcción de programación de transacciones para administrar su cancelación. Sin embargo, hay muchas casos en los que el trabajo que no se puede realizar en una transacción se debe cancelar. El uso de la cancelación es más difícil que el uso de transacciones, porque antes de cancelar un trabajo se debe realizar su seguimiento. .NET Framework 4 sirve de ayuda en esta situación ya que proporciona una actividad CancellationScope.

La cancelación se puede activar desde una actividad o desde el elemento primario de la actividad. La actividad primaria (como una actividad Sequence, Parallel, Flowchart o una actividad compuesta personalizada) programa sus actividades secundarias. La actividad primaria puede cancelar las actividades secundarias por cualquier motivo. Por ejemplo, una actividad Parallel con tres bifurcaciones secundarias cancelará las bifurcaciones secundarias restantes siempre que complete una bifurcación y la expresión CompletionCondition se evalúe como true. La aplicación host también puede cancelar externamente el flujo de trabajo llamando a Cancel.

Para utilizar la actividad CancellationScope, coloque el trabajo que se debe cancelar en la propiedad Body y el trabajo que se realiza después de la cancelación en la propiedad CancellationHandler.

En este ejemplo se muestra la cancelación de una actividad desde la propia actividad.

El escenario que el ejemplo utiliza para mostrar la actividad CancellationScope es un cliente que desea comprar un billete a Miami lo antes posible. Hay dos agencias de viaje que desean el negocio. En el ejemplo se utilizan dos actividades CancellationScope dentro de una actividad Parallel para modelar esta lógica comercial. La propiedad CompletionCondition de la actividad Parallel está establecida en true; puesto que la propiedad CompletionCondition se comprueba una vez que se completa una bifurcación, esto hará que la bifurcación restante se cancele cuando se complete la primera. La aplicación cliente pide a ambas agencias que compren el billete y, cuando la primera confirma que lo ha comprado, la aplicación cancela el pedido en la otra agencia.

Para utilizar este ejemplo

  1. Con Visual Studio 2010, abra el archivo de solución CancelationScopeXAML.sln.

  2. Presione F6 para compilar la solución.

  3. Presione CTRL+F5 para ejecutar la solución.

Dd807382.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<unidadDeInstalación>:\WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.

<unidadDeInstalación>:\WF_WCF_Samples\WF\Basic\Built-InActivities\CancellationScope