WorkflowApplication.Terminate 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.
Beendet eine Workflowinstanz.
Überlädt
| Name | Beschreibung |
|---|---|
| Terminate(Exception) |
Beendet eine Workflowinstanz mithilfe der angegebenen Ausnahme. |
| Terminate(String) |
Beendet eine Workflowinstanz mithilfe der angegebenen Fehlermeldung. |
| Terminate(Exception, TimeSpan) |
Beendet eine Workflowinstanz mithilfe des angegebenen Ausnahme- und Timeoutintervalls. |
| Terminate(String, TimeSpan) |
Beendet eine Workflowinstanz mithilfe der angegebenen Fehlermeldung und des Timeoutintervalls. |
Terminate(Exception)
Beendet eine Workflowinstanz mithilfe der angegebenen Ausnahme.
public:
void Terminate(Exception ^ reason);
public void Terminate(Exception reason);
member this.Terminate : Exception -> unit
Public Sub Terminate (reason As Exception)
Parameter
- reason
- Exception
Der Grund für das Beenden der Workflowinstanz.
Beispiele
Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication Instanz wird mithilfe der angegebenen Workflowdefinition erstellt, die gewünschten Workflowlebenszyklusereignisse werden behandelt, und der Workflow wird mit einem Aufruf Runaufgerufen. Nachdem der Workflow gestartet wurde, Terminate wird er aufgerufen. Wenn der Workflow beendet wird, wird die folgende Ausgabe in der Konsole angezeigt.
Starting the workflow.
Workflow e6b33409-f010-49f1-82ce-56f8baabe5e5 Terminated.
Exception: System.ApplicationException
Terminating the workflow.
Workflow e6b33409-f010-49f1-82ce-56f8baabe5e5 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);
// Outputs can be retrieved from the Outputs dictionary,
// keyed by argument name.
// Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
}
};
wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};
// Run the workflow.
wfApp.Run();
Thread.Sleep(TimeSpan.FromSeconds(1));
wfApp.Terminate(new ApplicationException("Terminating the workflow."));
Hinweise
Diese Methode plant die Beendigung der Workflowinstanz. Um benachrichtigt zu werden, wenn die Kündigung abgeschlossen ist, verwenden Sie das Completed Handle.
Der Vorgang muss standardmäßig Terminate in 30 Sekunden abgeschlossen werden, oder ein TimeoutException Vorgang wird ausgelöst.
Gilt für:
Terminate(String)
Beendet eine Workflowinstanz mithilfe der angegebenen Fehlermeldung.
public:
void Terminate(System::String ^ reason);
public void Terminate(string reason);
member this.Terminate : string -> unit
Public Sub Terminate (reason As String)
Parameter
- reason
- String
Der Grund für das Beenden der Workflowinstanz.
Beispiele
Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication Instanz wird mithilfe der angegebenen Workflowdefinition erstellt, die gewünschten Workflowlebenszyklusereignisse werden behandelt, und der Workflow wird mit einem Aufruf Runaufgerufen. Nachdem der Workflow gestartet wurde, Terminate wird er aufgerufen. Wenn der Workflow beendet wird, wird die folgende Ausgabe in der Konsole angezeigt.
Starting the workflow.
Workflow f87c6f91-4fe4-40b9-b7cb-4f1bd071bf84 Terminated.
Exception: System.Activities.WorkflowApplicationTerminatedException
Terminating the workflow.
Workflow f87c6f91-4fe4-40b9-b7cb-4f1bd071bf84 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);
// Outputs can be retrieved from the Outputs dictionary,
// keyed by argument name.
// Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
}
};
wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};
// Run the workflow.
wfApp.Run();
Thread.Sleep(TimeSpan.FromSeconds(1));
wfApp.Terminate("Terminating the workflow.");
Hinweise
Diese Methode plant die Beendigung der Workflowinstanz. Um benachrichtigt zu werden, wenn die Kündigung abgeschlossen ist, verwenden Sie das Completed Handle.
Der Vorgang muss standardmäßig Terminate in 30 Sekunden abgeschlossen werden, oder ein TimeoutException Vorgang wird ausgelöst.
Gilt für:
Terminate(Exception, TimeSpan)
Beendet eine Workflowinstanz mithilfe des angegebenen Ausnahme- und Timeoutintervalls.
public:
void Terminate(Exception ^ reason, TimeSpan timeout);
public void Terminate(Exception reason, TimeSpan timeout);
member this.Terminate : Exception * TimeSpan -> unit
Public Sub Terminate (reason As Exception, timeout As TimeSpan)
Parameter
- reason
- Exception
Der Grund für das Beenden der Workflowinstanz.
- timeout
- TimeSpan
Das Intervall, in dem der Terminate(Exception, TimeSpan) Vorgang abgeschlossen werden muss, bevor der Vorgang abgebrochen wird und ein TimeoutException Vorgang ausgelöst wird.
Beispiele
Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication Instanz wird mithilfe der angegebenen Workflowdefinition erstellt, die gewünschten Workflowlebenszyklusereignisse werden behandelt, und der Workflow wird mit einem Aufruf Runaufgerufen. Nachdem der Workflow gestartet wurde, Terminate wird er aufgerufen. Wenn der Workflow beendet wird, wird die folgende Ausgabe in der Konsole angezeigt.
Starting the workflow.
Workflow de28efe5-9057-472b-8d95-899c249893c5 Terminated.
Exception: System.ApplicationException
Terminating the workflow.
Workflow de28efe5-9057-472b-8d95-899c249893c5 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);
// Outputs can be retrieved from the Outputs dictionary,
// keyed by argument name.
// Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
}
};
wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};
// Run the workflow.
wfApp.Run();
Thread.Sleep(TimeSpan.FromSeconds(1));
wfApp.Terminate(new ApplicationException("Terminating the workflow."),
TimeSpan.FromSeconds(15));
Hinweise
Diese Methode plant die Beendigung des Workflows. Um benachrichtigt zu werden, wenn die Kündigung abgeschlossen ist, verwenden Sie das Completed Handle.
Gilt für:
Terminate(String, TimeSpan)
Beendet eine Workflowinstanz mithilfe der angegebenen Fehlermeldung und des Timeoutintervalls.
public:
void Terminate(System::String ^ reason, TimeSpan timeout);
public void Terminate(string reason, TimeSpan timeout);
member this.Terminate : string * TimeSpan -> unit
Public Sub Terminate (reason As String, timeout As TimeSpan)
Parameter
- reason
- String
Der Grund für das Beenden der Workflowinstanz.
- timeout
- TimeSpan
Das Intervall, in dem der Terminate(String, TimeSpan) Vorgang abgeschlossen werden muss, bevor der Vorgang abgebrochen wird und ein TimeoutException Vorgang ausgelöst wird.
Beispiele
Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication Instanz wird mithilfe der angegebenen Workflowdefinition erstellt, die gewünschten Workflowlebenszyklusereignisse werden behandelt, und der Workflow wird mit einem Aufruf Runaufgerufen. Nachdem der Workflow gestartet wurde, Terminate wird er aufgerufen. Wenn der Workflow beendet wird, wird die folgende Ausgabe in der Konsole angezeigt.
Starting the workflow.
Workflow 2897d2ef-377e-4224-ae93-5c19b38f487c Terminated.
Exception: System.Activities.WorkflowApplicationTerminatedException
Terminating the workflow.
Workflow 2897d2ef-377e-4224-ae93-5c19b38f487c 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);
// Outputs can be retrieved from the Outputs dictionary,
// keyed by argument name.
// Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
}
};
wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};
// Run the workflow.
wfApp.Run();
Thread.Sleep(TimeSpan.FromSeconds(1));
wfApp.Terminate("Terminating the workflow.", TimeSpan.FromSeconds(15));
Hinweise
Diese Methode plant die Beendigung der Workflowinstanz. Um benachrichtigt zu werden, wenn die Kündigung abgeschlossen ist, verwenden Sie das Completed Handle.