Metodo WorkflowApplication.Unload (TimeSpan)

.NET Framework (current version)
 

Data di pubblicazione: ottobre 2016

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

Spazio dei nomi:   System.Activities
Assembly:  System.Activities (in System.Activities.dll)

public void Unload(
	TimeSpan timeout
)

Parametri

timeout
Type: System.TimeSpan

Intervallo nel quale deve essere completata l'operazione di scaricamento prima che l'operazione sia annullata e 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.

Esempio di codice seguente fa parte di attività NoPersistScope 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();
}

.NET Framework
Disponibile da 4.0
Torna all'inizio
Mostra: