Compartilhar via


WorkflowApplication.Cancel Método

Definição

Cancela a instância de fluxo de trabalho.

Sobrecargas

Cancel()

Cancela a instância de fluxo de trabalho.

Cancel(TimeSpan)

Cancela a instância de fluxo de trabalho usando o intervalo de tempo limite especificado.

Comentários

Esse método agenda o cancelamento da instância de fluxo de trabalho. Para ser notificado quando o cancelamento for concluído, use o Completed identificador .

Por padrão, a operação de cancelamento deve ser concluída em 30 segundos ou uma TimeoutException é gerada.

Cancel()

Cancela a instância de fluxo de trabalho.

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

Exemplos

O exemplo a seguir hospeda um fluxo de trabalho usando WorkflowApplication. Uma WorkflowApplication instância é construída usando a definição de fluxo de trabalho especificada, os eventos de ciclo de vida de fluxo de trabalho desejados são tratados e o fluxo de trabalho é invocado com uma chamada para Run. Depois que o fluxo de trabalho é iniciado, Cancel é chamado. Quando o fluxo de trabalho é cancelado, a saída a seguir é exibida no console.

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();

Comentários

Esse método agenda o cancelamento da instância de fluxo de trabalho. Para ser notificado quando o cancelamento for concluído, use o Completed manipulador .

Por padrão, a operação de cancelamento deve ser concluída em 30 segundos ou uma TimeoutException é gerada.

Aplica-se a

Cancel(TimeSpan)

Cancela a instância de fluxo de trabalho usando o intervalo de tempo limite 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

O intervalo no qual a operação de cancelamento deve ser concluída antes que ela seja cancelada e que uma TimeoutException seja gerada.

Exemplos

O exemplo a seguir hospeda um fluxo de trabalho usando WorkflowApplication. Uma WorkflowApplication instância é construída usando a definição de fluxo de trabalho especificada, os eventos de ciclo de vida de fluxo de trabalho desejados são tratados e o fluxo de trabalho é invocado com uma chamada para Run. Depois que o fluxo de trabalho é iniciado, Cancel é chamado. Quando o fluxo de trabalho é cancelado, a saída a seguir é exibida no console.

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();

Comentários

Esse método agenda o cancelamento da instância de fluxo de trabalho. Para ser notificado quando o cancelamento for concluído, use o Completed manipulador .

Aplica-se a