WorkflowInstance.Terminate(String) Methode

Definition

Beendet die Workflowinstanz auf synchrone Weise.

public:
 void Terminate(System::String ^ error);
public void Terminate (string error);
member this.Terminate : string -> unit
Public Sub Terminate (error As String)

Parameter

error
String

Eine Beschreibung des Grunds für die Beendigung der Workflowinstanz.

Ausnahmen

Die Workflowruntime-Engine wird nicht ausgeführt.

Beispiele

Das folgende Codebeispiel zeigt den Aufruf zum Beenden eines WorkflowInstance-Objekts.

// Create a workflow runtime
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// Create a workflow instance
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
// Start the workflow
workflowInstance.Start();
// Terminate the workflow, passing in a message
workflowInstance.Terminate("Workflow manually terminated");
' Create a workflow runtime
Dim workflowRuntime As New WorkflowRuntime()
' Create a workflow instance
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
' Start the workflow
workflowInstance.Start()
' Terminate the workflow, passing in a message
workflowInstance.Terminate("Workflow manually terminated")

Hinweise

Die Workflowinstanz wird auf synchrone Weise beendet. Der Host ruft Terminate auf, um die Workflowinstanz zu beenden. Die Workflowruntime-Engine löscht die Workflowinstanz im Arbeitsspeicher und informiert den Persistenzdienst darüber, dass die Instanz aus dem Arbeitsspeicher gelöscht wurde. Für den SqlWorkflowPersistenceService bedeutet dies, dass alle Zustandsinformationen für diese Workflowinstanz bei der Beendigung aus der Datenbank gelöscht werden. Sie können die Workflowinstanz dann nicht mehr von einem vorher gespeicherten Persistenzpunkt neu laden.

Nachdem die Workflowinstanz im Arbeitsspeicher gelöscht und der Persistenzdienst über die Beendigung informiert wurde, löst die Terminate-Methode das WorkflowTerminated-Ereignis aus und übergibt reason in der Message-Eigenschaft einer WorkflowTerminatedException, die in WorkflowTerminatedEventArgs enthalten ist.

Terminate unterscheidet sich von Abort wie folgt: 'Terminate' löscht die Workflowinstanz im Arbeitsspeicher und informiert den Persistenzdienst über die Beendigung, während Abort einfach die Workflowinstanz im Arbeitsspeicher löscht, die Sie dann am letzten Persistenzpunkt neu starten können.

Gilt für: