WorkflowInstance.Terminate(String) 方法

定义

以同步方式终止工作流实例。

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

参数

error
String

终止工作流实例原因的说明。

例外

工作流运行时引擎未运行。

示例

下面的代码示例演示如何在 WorkflowInstance 对象上调用“Terminate”。

// 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")

注解

此工作流实例是以同步方式终止的。 宿主调用 Terminate 终止工作流实例。 工作流运行时引擎将清除内存中的工作流实例,并通知持久性服务实例已经从内存中清除。 对于 SqlWorkflowPersistenceService,这表示终止时该工作流实例的所有状态信息都已从数据库中删除。 您将无法从先前存储的持久点处重新加载工作流实例。

在清除内存中的工作流实例并通知持久性服务终止之后, 方法将引发 事件,并在 包含的 T:System.Workflow.ComponentModel.WorkflowTerminatedException 的 属性中传递 。

TerminateAbort 的不同之处在于,Terminate 将清除内存中的工作流实例,并通知持久性服务已发生终止;而 Abort 只是清除内存中的工作流实例,然后您可以从最后一个持久点重新启动该实例。

适用于