WorkflowInstance.Terminate(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
以同步方式终止工作流实例。
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 的 属性中传递 。
Terminate
与 Abort 的不同之处在于,Terminate 将清除内存中的工作流实例,并通知持久性服务已发生终止;而 Abort
只是清除内存中的工作流实例,然后您可以从最后一个持久点重新启动该实例。