WorkflowApplication.Cancel Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cancela a instância do fluxo de trabalho.
Sobrecargas
| Name | Description |
|---|---|
| Cancel() |
Cancela a instância do fluxo de trabalho. |
| Cancel(TimeSpan) |
Cancela a instância do fluxo de trabalho usando o intervalo de tempo especificado. |
Observações
Este método agenda o cancelamento da instância do workflow. Para ser notificado quando o cancelamento estiver concluído, utilize o Completed handle.
Por defeito, a operação de cancelamento deve ser concluída em 30 segundos ou é lançada TimeoutException .
Cancel()
Cancela a instância do fluxo de trabalho.
public:
void Cancel();
public void Cancel();
member this.Cancel : unit -> unit
Public Sub Cancel ()
Exemplos
O exemplo a seguir configura um fluxo de trabalho usando WorkflowApplication. Uma instância é construída usando a definição do fluxo de trabalho especificada, os eventos desejados do WorkflowApplication ciclo de vida do fluxo de trabalho são tratados e o fluxo de trabalho é invocado com uma chamada para Run. Depois de iniciar o fluxo de trabalho, Cancel é chamado. Quando o fluxo de trabalho é cancelado, a saída seguinte é exibida para a 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();
Observações
Este método agenda o cancelamento da instância do workflow. Para ser notificado quando o cancelamento terminar, use o Completed handler.
Por defeito, a operação de cancelamento deve ser concluída em 30 segundos ou é lançada TimeoutException .
Aplica-se a
Cancel(TimeSpan)
Cancela a instância do fluxo de trabalho usando o intervalo de tempo 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 em que a operação de cancelamento deve ser concluída antes de a operação ser cancelada e a TimeoutException ser lançado.
Exemplos
O exemplo a seguir configura um fluxo de trabalho usando WorkflowApplication. Uma instância é construída usando a definição do fluxo de trabalho especificada, os eventos desejados do WorkflowApplication ciclo de vida do fluxo de trabalho são tratados e o fluxo de trabalho é invocado com uma chamada para Run. Depois de iniciar o fluxo de trabalho, Cancel é chamado. Quando o fluxo de trabalho é cancelado, a saída seguinte é exibida para a 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();
Observações
Este método agenda o cancelamento da instância do workflow. Para ser notificado quando o cancelamento terminar, use o Completed handler.