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

适用于