Share via


WorkflowInstance.Unload メソッド

定義

メモリ内のワークフロー インスタンスを永続ストアにアンロードします。 この呼び出しは、現在のスケジュール済み作業が完了するまで、またはトランザクション スコープが終了するまでブロックされます。

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 は同期的です。つまり、実行するアクションが完了した後に制御が戻ります。 ワークフロー インスタンスがアイドル状態でない場合、ランタイムはインスタンスを中断できるまで待機します。 インスタンスを中断できるのは、現在のスケジュール済み作業項目の完了後のみです。この完了のタイミングは通常、現在実行中のアクティビティがその Execute メソッドから返されたときです。 ただし、インスタンスが TransactionScopeActivity を実行している場合、インスタンスを中断できるのは、トランザクション スコープが実行を完了してからです。 アンロードは次に、永続性サービスを使用することによって、メモリからワークフロー インスタンスを削除し、削除したワークフロー インスタンスをデータ ストアに永続化します。 WorkflowRuntime に登録された永続性サービスがない場合、UnloadInvalidOperationException をスローします。 ワークフロー インスタンスが正常に永続化されると、ランタイムは WorkflowUnloaded イベントを発生させます。

ホストは Unload を使用して、アイドル状態のワークフローのシステム リソースを再利用できます。

適用対象