WorkflowApplication.Cancel Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bricht die Workflowinstanz ab.
Überlädt
Cancel() |
Bricht die Workflowinstanz ab. |
Cancel(TimeSpan) |
Bricht die Workflowinstanz mithilfe des angegebenen Timeoutintervalls ab. |
Hinweise
Diese Methode plant den Abbruch der Workflowinstanz. Um bei Abschluss des Abbruchvorgangs benachrichtigt zu werden, verwenden Sie das Completed-Handle.
Standardmäßig muss der Abbruchvorgang innerhalb von 30 Sekunden abgeschlossen werden. Andernfalls wird eine TimeoutException ausgelöst.
Cancel()
Bricht die Workflowinstanz ab.
public:
void Cancel();
public void Cancel ();
member this.Cancel : unit -> unit
Public Sub Cancel ()
Beispiele
Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication-Instanz wird mit der angegebenen Workflowdefinition erstellt, die gewünschten Lebenszyklusereignisse des Workflows werden behandelt, und der Workflow wird mit einem Aufruf von Run aufgerufen. Nachdem der Workflow gestartet wurde, wird Cancel aufgerufen. Wenn der Workflow abgebrochen wurde, wird die folgende Ausgabe in der Konsole angezeigt.
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();
Hinweise
Diese Methode plant den Abbruch der Workflowinstanz. Um bei Abschluss des Abbruchvorgangs benachrichtigt zu werden, verwenden Sie den Completed-Handler.
Standardmäßig muss der Abbruchvorgang innerhalb von 30 Sekunden abgeschlossen werden. Andernfalls wird eine TimeoutException ausgelöst.
Gilt für:
Cancel(TimeSpan)
Bricht die Workflowinstanz mithilfe des angegebenen Timeoutintervalls ab.
public:
void Cancel(TimeSpan timeout);
public void Cancel (TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)
Parameter
- timeout
- TimeSpan
Das Intervall, in dem der Abbruchvorgang abgeschlossen werden muss, bevor der Vorgang abgebrochen und eine TimeoutException ausgelöst wird.
Beispiele
Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication-Instanz wird mit der angegebenen Workflowdefinition erstellt, die gewünschten Lebenszyklusereignisse des Workflows werden behandelt, und der Workflow wird mit einem Aufruf von Run aufgerufen. Nachdem der Workflow gestartet wurde, wird Cancel aufgerufen. Wenn der Workflow abgebrochen wurde, wird die folgende Ausgabe in der Konsole angezeigt.
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();
Hinweise
Diese Methode plant den Abbruch der Workflowinstanz. Um bei Abschluss des Abbruchvorgangs benachrichtigt zu werden, verwenden Sie den Completed-Handler.