WorkflowApplication.Cancel Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Annulla l'istanza del flusso di lavoro.
Overload
Cancel() |
Annulla l'istanza del flusso di lavoro. |
Cancel(TimeSpan) |
Annulla l'istanza del flusso di lavoro utilizzando l'intervallo di timeout specificato. |
Commenti
Questo metodo pianifica l'annullamento dell'istanza del flusso di lavoro. Per essere notificato quando la chiusura è stata completata, utilizzare l'handle Completed.
Per impostazione predefinita, l'operazione di annullamento deve essere completata in 30 secondi, altrimenti viene generata una TimeoutException.
Cancel()
Annulla l'istanza del flusso di lavoro.
public:
void Cancel();
public void Cancel ();
member this.Cancel : unit -> unit
Public Sub Cancel ()
Esempio
Nell'esempio seguente viene ospitato un flusso di lavoro tramite WorkflowApplication. Un'istanza WorkflowApplication viene costruita utilizzando la definizione di flusso di lavoro specificata, vengono gestiti gli eventi del ciclo di vita del flusso di lavoro desiderati e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo aver avviato il flusso di lavoro, viene richiamato l'oggetto Cancel. Quando il flusso di lavoro viene annullato, l'output seguente viene visualizzato nella 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();
Commenti
Questo metodo pianifica l'annullamento dell'istanza del flusso di lavoro. Per ricevere una notifica al completamento dell'annullamento, utilizzare il gestore Completed.
Per impostazione predefinita, l'operazione di annullamento deve essere completata in 30 secondi, altrimenti viene generata una TimeoutException.
Si applica a
Cancel(TimeSpan)
Annulla l'istanza del flusso di lavoro utilizzando l'intervallo di timeout specificato.
public:
void Cancel(TimeSpan timeout);
public void Cancel (TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)
Parametri
- timeout
- TimeSpan
Intervallo nel quale deve essere completata l'operazione di annullamento prima che sia annullata e venga generato un oggetto TimeoutException.
Esempio
Nell'esempio seguente viene ospitato un flusso di lavoro tramite WorkflowApplication. Un'istanza WorkflowApplication viene costruita utilizzando la definizione di flusso di lavoro specificata, vengono gestiti gli eventi del ciclo di vita del flusso di lavoro desiderati e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo aver avviato il flusso di lavoro, viene richiamato l'oggetto Cancel. Quando il flusso di lavoro viene annullato, l'output seguente viene visualizzato nella 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();
Commenti
Questo metodo pianifica l'annullamento dell'istanza del flusso di lavoro. Per ricevere una notifica al completamento dell'annullamento, utilizzare il gestore Completed.