Rediger

Del via


WorkflowInstance.Abort Method

Definition

Aborts the workflow instance.

public:
 void Abort();
public void Abort ();
member this.Abort : unit -> unit
Public Sub Abort ()

Exceptions

The workflow runtime engine is not running.

Examples

The following example demonstrates calling Abort on a workflow instance of type Workflow1.

//Create a workflow runtime
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
//Create a workflow instance
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
//Start the instance
instance.Start();
//Abort the instance
instance.Abort();
'Create a workflow runtime
Dim workflowRuntime As New WorkflowRuntime()
'Create a workflow instance
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
'Start the instance
workflowInstance.Start()
'Abort the instance
workflowInstance.Abort()

Remarks

The workflow instance is aborted in a synchronous manner; that is, the method returns after the workflow instance has been aborted. The workflow runtime engine invalidates the workflow instance in memory and clears the WorkBatch. If a persistence service was used by your workflow instance, all work performed since the last persistence point is thrown away. After it aborts the workflow instance, the workflow runtime engine raises the WorkflowAborted event. You can call GetWorkflow to reload the workflow instance and start from its last persistence point.

Abort is different from Terminate in that while Abort simply clears the in-memory workflow instance and can be restarted from the last persistence point, Terminate 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.

Applies to