Partilhar via


WorkflowApplication.Unload Método

Definição

Persiste e descarrega uma instância de fluxo de trabalho.

Sobrecargas

Unload(TimeSpan)

Persiste e descarrega a instância de fluxo de trabalho usando o intervalo de tempo limite especificado.

Unload()

Persiste e descarrega uma instância de fluxo de trabalho.

Comentários

Por padrão, a operação de descarregamento deve ser concluída em 30 segundos ou uma TimeoutException é lançada.

Se a instância de fluxo de trabalho tiver sido carregada anteriormente da persistência, o mesmo InstanceStore usado para carregar o fluxo de trabalho será usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi persistente, um InstanceStore deve ser configurado antes de chamar esse método ou então um InvalidOperationException é gerado quando esse método é chamado.

Unload(TimeSpan)

Persiste e descarrega a instância de fluxo de trabalho usando o intervalo de tempo limite especificado.

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

Parâmetros

timeout
TimeSpan

O intervalo no qual a operação de descarregamento deve ser concluída antes que ela seja cancelada e que uma TimeoutException seja gerada.

Exemplos

Neste exemplo, o fluxo de trabalho está ocioso e o aplicativo host está aguardando a entrada do usuário. Se o usuário optar por descarregar, Unload será chamado. Se tiver êxito, o fluxo de trabalho será persistido e descarregado da memória.

// 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();
}

Comentários

Se a instância de fluxo de trabalho tiver sido carregada anteriormente da persistência, o mesmo InstanceStore usado para carregar o fluxo de trabalho será usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi persistente, um InstanceStore deve ser configurado antes de chamar esse método ou então um InvalidOperationException é gerado quando esse método é chamado.

Aplica-se a

Unload()

Persiste e descarrega uma instância de fluxo de trabalho.

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

Exemplos

Neste exemplo, o fluxo de trabalho está ocioso e o aplicativo host está aguardando a entrada do usuário. Se o usuário optar por descarregar, Unload será chamado. Se tiver êxito, o fluxo de trabalho será persistido e descarregado da memória.

// 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();
}

Comentários

Por padrão, a operação de descarregamento deve ser concluída em 30 segundos ou uma TimeoutException é lançada.

Se a instância de fluxo de trabalho tiver sido carregada anteriormente da persistência, o mesmo InstanceStore usado para carregar o fluxo de trabalho será usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi persistente, um InstanceStore deve ser configurado antes de chamar esse método ou então um InvalidOperationException é gerado quando esse método é chamado.

Aplica-se a