WorkflowInstance.Terminate(String) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Terminates the workflow instance in a synchronous manner.
public:
void Terminate(System::String ^ error);
public void Terminate (string error);
member this.Terminate : string -> unit
Public Sub Terminate (error As String)
Parameters
- error
- String
A description of the reason for terminating the workflow instance.
Exceptions
The workflow runtime engine is not running.
Examples
The following code example demonstrates calling Terminate on a WorkflowInstance object.
// 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")
Remarks
The workflow instance is terminated in a synchronous manner. The host calls Terminate to terminate the workflow instance. The workflow runtime engine clears the in-memory workflow instance and informs the persistence service that the instance has been cleared from memory. For the SqlWorkflowPersistenceService, this means that all state information for that workflow instance is deleted from the database upon termination. You will not be able to reload the workflow instance from a previously stored persistence point.
After the in-memory workflow instance is cleared and the persistence service is informed of the termination, the Terminate
method raises the WorkflowTerminated event and passes reason
in the Message property of a WorkflowTerminatedException contained in the WorkflowTerminatedEventArgs.
Terminate
is different from Abort in that while Terminate clears the in-memory workflow instance and informs the persistence service of the termination, Abort
simply clears the in-memory workflow instance, which can then be restarted from the last persistence point.