WorkflowInstance.Unload 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將工作流程執行個體從記憶體卸載到持續性存放區中。 此呼叫會封鎖到完成目前排程的工作後,或到異動範圍結束為止。
public:
void Unload();
public void Unload ();
member this.Unload : unit -> unit
Public Sub Unload ()
例外狀況
沒有已經向工作流程執行階段引擎註冊的持續性服務。
範例
下列範例示範呼叫 Unload 物件上的 WorkflowInstance。
// Create a WorkflowRuntime object
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// Create a new instance of the out-of-box SqlWorkflowPersistenceService
SqlWorkflowPersistenceService persistenceService =
new SqlWorkflowPersistenceService(
"Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;");
// Add the service to the runtime
workflowRuntime.AddService(persistenceService);
// Create a WorkflowInstance object
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
// Start the workflow instance
workflowInstance.Start();
//Unload the instance
workflowInstance.Unload();
' Create a WorkflowRuntime object
Dim workflowRuntime As New WorkflowRuntime()
' Create a new instance of the out-of-box SqlWorkflowPersistenceService
Dim persistenceService As _
New SqlWorkflowPersistenceService( _
"Initial Catalog=SqlPersistenceServiceData Source=localhostIntegrated Security=SSPI")
' Add the service to the runtime
workflowRuntime.AddService(persistenceService)
' Create a WorkflowInstance object
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
' Start the workflow instance
workflowInstance.Start()
'Unload the instance
workflowInstance.Unload()
備註
Unload 是同步的,也就是說,它會在完成其執行的任何動作後傳回。 如果工作流程執行個體未閒置,則執行階段會等到執行個體可以被中斷為止。 只有在目前排程的工作項目完成後,才能中斷執行個體。這通常發生在目前執行的 Activity 從執行個體的 Execute 方法傳回時。 但如果執行個體正在執行 TransactionScopeActivity,則執行個體必須等到交易範圍完成執行後才能被中斷。 請先卸載,然後使用持續性服務移除記憶體中的工作流程執行個體,然後將它保存在資料存放區中。 如果沒有已向 WorkflowRuntime 註冊的持續性服務,Unload 會擲回 InvalidOperationException。 如果成功保存工作流程執行個體,執行階段會引發 WorkflowUnloaded 事件。
主機可以使用 Unload 從閒置的工作流程中回收系統資源。