Compartir vía


WorkflowApplication.Cancel Método

Definición

Cancela la instancia de flujo de trabajo.

Sobrecargas

Cancel()

Cancela la instancia de flujo de trabajo.

Cancel(TimeSpan)

Cancela la instancia de flujo de trabajo utilizando el intervalo de tiempo de espera especificado.

Comentarios

Este método programa la cancelación de la instancia de flujo de trabajo. Para recibir una notificación cuando haya finalizado la cancelación, utilice el controlador Completed.

De forma predeterminada, la operación de cancelación se debe completar en 30 segundos o, si no, se produce una excepción TimeoutException.

Cancel()

Cancela la instancia de flujo de trabajo.

public:
 void Cancel();
public void Cancel ();
member this.Cancel : unit -> unit
Public Sub Cancel ()

Ejemplos

En el siguiente ejemplo, se hospeda un flujo de trabajo utilizando WorkflowApplication. Una instancia de WorkflowApplication se construye utilizando la definición de flujo de trabajo especificada, se controlan los eventos de ciclo de vida de flujo de trabajo deseados y el flujo de trabajo se invoca con una llamada al método Run. Una vez iniciado el flujo de trabajo, se llama al método Cancel. Cuando se cancela el flujo de trabajo, se muestra la siguiente salida en la consola.

Starting the workflow.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled  
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.  
Activity wf = new Sequence
{
    Activities =
     {
         new WriteLine
         {
             Text = "Starting the workflow."
         },
         new Delay
         {
             Duration = TimeSpan.FromSeconds(5)
         },
         new WriteLine
         {
             Text = "Ending the workflow."
         }
     }
};

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
    }
};

// Run the workflow.
wfApp.Run();

Thread.Sleep(TimeSpan.FromSeconds(1));

wfApp.Cancel();

Comentarios

Este método programa la cancelación de la instancia de flujo de trabajo. Para recibir una notificación cuando se haya completado la cancelación, utilice el controlador de la propiedad Completed.

De forma predeterminada, la operación de cancelación se debe completar en 30 segundos o, si no, se produce una excepción TimeoutException.

Se aplica a

Cancel(TimeSpan)

Cancela la instancia de flujo de trabajo utilizando el intervalo de tiempo de espera especificado.

public:
 void Cancel(TimeSpan timeout);
public void Cancel (TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)

Parámetros

timeout
TimeSpan

Intervalo de tiempo en el que debe completarse la operación de cancelación antes de que se cancele la operación y se produzca una excepción TimeoutException.

Ejemplos

En el siguiente ejemplo, se hospeda un flujo de trabajo utilizando WorkflowApplication. Una instancia de WorkflowApplication se construye utilizando la definición de flujo de trabajo especificada, se controlan los eventos de ciclo de vida de flujo de trabajo deseados y el flujo de trabajo se invoca con una llamada al método Run. Una vez iniciado el flujo de trabajo, se llama al método Cancel. Cuando se cancela el flujo de trabajo, se muestra la siguiente salida en la consola.

Starting the workflow.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled  
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.  
Activity wf = new Sequence
{
    Activities =
     {
         new WriteLine
         {
             Text = "Starting the workflow."
         },
         new Delay
         {
             Duration = TimeSpan.FromSeconds(5)
         },
         new WriteLine
         {
             Text = "Ending the workflow."
         }
     }
};

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
    }
};

// Run the workflow.
wfApp.Run();

Thread.Sleep(TimeSpan.FromSeconds(1));

wfApp.Cancel();

Comentarios

Este método programa la cancelación de la instancia de flujo de trabajo. Para recibir una notificación cuando se haya completado la cancelación, utilice el controlador de la propiedad Completed.

Se aplica a