次の方法で共有


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 がスローされます。

適用対象