Condividi tramite


WorkflowApplication.Unload Metodo

Definizione

Rende persistente e scarica un'istanza del flusso di lavoro.

Overload

Unload(TimeSpan)

Rende persistente e scarica un'istanza del flusso di lavoro utilizzando l'intervallo di timeout specificato.

Unload()

Rende persistente e scarica un'istanza del flusso di lavoro.

Commenti

Per impostazione predefinita, l'operazione di scaricamento deve essere completata in 30 secondi, altrimenti viene generato un TimeoutException.

Se l'istanza del flusso di lavoro è stata precedentemente caricata dalla persistenza, lo stesso InstanceStore utilizzato per il caricamento del flusso di lavoro viene utilizzato per la persistenza. Se il flusso di lavoro è stato creato ma non reso persistente, è necessario configurare una proprietà InstanceStore prima di chiamare questo metodo, altrimenti viene generata un'eccezione InvalidOperationException.

Unload(TimeSpan)

Rende persistente e scarica un'istanza del flusso di lavoro utilizzando l'intervallo di timeout specificato.

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

Parametri

timeout
TimeSpan

Intervallo nel quale deve essere completata l'operazione di scaricamento prima che l'operazione sia annullata e generato un TimeoutException.

Esempio

In questo esempio, il flusso di lavoro è inattivo e l'applicazione host è in attesa dell'input dell'utente. Se l'utente sceglie di scaricare, viene chiamato Unload. Se è riuscito correttamente, il flusso di lavoro viene reso persistente e scaricato dalla memoria.

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

Commenti

Se l'istanza del flusso di lavoro è stata precedentemente caricata dalla persistenza, lo stesso InstanceStore utilizzato per il caricamento del flusso di lavoro viene utilizzato per la persistenza. Se il flusso di lavoro è stato creato ma non reso persistente, è necessario configurare una proprietà InstanceStore prima di chiamare questo metodo, altrimenti viene generata un'eccezione InvalidOperationException.

Si applica a

Unload()

Rende persistente e scarica un'istanza del flusso di lavoro.

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

Esempio

In questo esempio, il flusso di lavoro è inattivo e l'applicazione host è in attesa dell'input dell'utente. Se l'utente sceglie di scaricare, viene chiamato Unload. Se è riuscito correttamente, il flusso di lavoro viene reso persistente e scaricato dalla memoria.

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

Commenti

Per impostazione predefinita, l'operazione di scaricamento deve essere completata in 30 secondi, altrimenti viene generato un TimeoutException.

Se l'istanza del flusso di lavoro è stata precedentemente caricata dalla persistenza, lo stesso InstanceStore utilizzato per il caricamento del flusso di lavoro viene utilizzato per la persistenza. Se il flusso di lavoro è stato creato ma non reso persistente, è necessario configurare una proprietà InstanceStore prima di chiamare questo metodo, altrimenti viene generata un'eccezione InvalidOperationException.

Si applica a