WorkflowApplication.Unload メソッド

定義

ワークフロー インスタンスを永続化しアンロードします。

オーバーロード

Unload(TimeSpan)

指定されたタイムアウト期間を使用して、ワークフロー インスタンスを永続化しアンロードします。

Unload()

ワークフロー インスタンスを永続化しアンロードします。

注釈

既定では、アンロード操作は 30 秒以内に完了する必要があります。完了しない場合、TimeoutException がスローされます。

ワークフロー インスタンスが永続化ストアから読み込まれたものである場合は、ワークフローの読み込みに使用された同じ InstanceStore が、永続化に使用されます。 ワークフローが作成されたものであり、まだ永続化されていない場合は、このメソッドを呼び出す前に InstanceStore を構成する必要があります。この操作を行わないと、このメソッドを呼び出したときに InvalidOperationException がスローされます。

Unload(TimeSpan)

指定されたタイムアウト期間を使用して、ワークフロー インスタンスを永続化しアンロードします。

public:
 void Unload(TimeSpan timeout);
public void Unload (TimeSpan timeout);
member this.Unload : TimeSpan -> unit
Public Sub Unload (timeout As TimeSpan)

パラメーター

timeout
TimeSpan

操作が取り消され TimeoutException がスローされるまでの時間の長さ。アンロード操作は、この時間内に完了する必要があります。

この例では、ワークフローがアイドル状態で、ホスト アプリケーションがユーザー入力を待っています。 ユーザーがアンロードを選択すると、Unload が呼び出されます。 成功すると、ワークフローは永続化され、メモリからアンロードされます。

// single interaction with the user. The user enters a string in the console and that
// string is used to resume the ReadLine activity bookmark
static void Interact(WorkflowApplication application, AutoResetEvent resetEvent)
{
    Console.WriteLine("Workflow is ready for input");
    Console.WriteLine("Special commands: 'unload', 'exit'");

    bool done = false;
    while (!done)
    {
        Console.Write("> ");
        string s = Console.ReadLine();
        if (s.Equals("unload"))
        {
            try
            {
                // attempt to unload will fail if the workflow is idle within a NoPersistZone
                application.Unload(TimeSpan.FromSeconds(5));
                done = true;
            }
            catch (TimeoutException e)
            {
                Console.WriteLine(e.Message);
            }
        }
        else if (s.Equals("exit"))
        {
            application.ResumeBookmark("inputBookmark", s);
            done = true;
        }
        else
        {
            application.ResumeBookmark("inputBookmark", s);
        }
    }
    resetEvent.WaitOne();
}

注釈

ワークフロー インスタンスが永続化ストアから読み込まれたものである場合は、ワークフローの読み込みに使用された同じ InstanceStore が、永続化に使用されます。 ワークフローが作成されたものであり、まだ永続化されていない場合は、このメソッドを呼び出す前に InstanceStore を構成する必要があります。この操作を行わないと、このメソッドを呼び出したときに InvalidOperationException がスローされます。

適用対象

Unload()

ワークフロー インスタンスを永続化しアンロードします。

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

この例では、ワークフローがアイドル状態で、ホスト アプリケーションがユーザー入力を待っています。 ユーザーがアンロードを選択すると、Unload が呼び出されます。 成功すると、ワークフローは永続化され、メモリからアンロードされます。

// single interaction with the user. The user enters a string in the console and that
// string is used to resume the ReadLine activity bookmark
static void Interact(WorkflowApplication application, AutoResetEvent resetEvent)
{
    Console.WriteLine("Workflow is ready for input");
    Console.WriteLine("Special commands: 'unload', 'exit'");

    bool done = false;
    while (!done)
    {
        Console.Write("> ");
        string s = Console.ReadLine();
        if (s.Equals("unload"))
        {
            try
            {
                // attempt to unload will fail if the workflow is idle within a NoPersistZone
                application.Unload(TimeSpan.FromSeconds(5));
                done = true;
            }
            catch (TimeoutException e)
            {
                Console.WriteLine(e.Message);
            }
        }
        else if (s.Equals("exit"))
        {
            application.ResumeBookmark("inputBookmark", s);
            done = true;
        }
        else
        {
            application.ResumeBookmark("inputBookmark", s);
        }
    }
    resetEvent.WaitOne();
}

注釈

既定では、アンロード操作は 30 秒以内に完了する必要があります。完了しない場合、TimeoutException がスローされます。

ワークフロー インスタンスが永続化ストアから読み込まれたものである場合は、ワークフローの読み込みに使用された同じ InstanceStore が、永続化に使用されます。 ワークフローが作成されたものであり、まだ永続化されていない場合は、このメソッドを呼び出す前に InstanceStore を構成する必要があります。この操作を行わないと、このメソッドを呼び出したときに InvalidOperationException がスローされます。

適用対象