WorkflowApplication.Unload Methode

Definition

Speichert eine Workflowinstanz im Persistenzspeicher und entlädt sie.Persists and unloads a workflow instance.

Überlädt

Unload(TimeSpan)

Speichert eine Workflowinstanz im Persistenzspeicher und entlädt sie, wobei das angegebene Timeoutintervall verwendet wird.Persists and unloads a workflow instance using the specified time-out interval.

Unload()

Speichert eine Workflowinstanz im Persistenzspeicher und entlädt sie.Persists and unloads a workflow instance.

Hinweise

Standardmäßig muss der Entladevorgang innerhalb von 30 Sekunden abgeschlossen sein. Andernfalls wird eine TimeoutException ausgelöst.By default, the unload operation must complete in 30 seconds or a TimeoutException is thrown.

Wenn die Workflowinstanz zuvor aus dem permanenten Speicher geladen wurde, wird für den permanenten Speicher der InstanceStore verwendet, mit dem der Workflow geladen wurde.If the workflow instance was previously loaded from persistence, then the same InstanceStore used to load the workflow is used for persistence. Wenn der Workflow erstellt und noch nicht permanent gespeichert wurde, muss vor dem Aufrufen dieser Methode ein InstanceStore konfiguriert werden. Andernfalls wird beim Aufrufen dieser Methode eine InvalidOperationException ausgelöst.If the workflow was created and has not yet been persisted, then an InstanceStore must be configured before calling this method or else an InvalidOperationException is thrown when this method is called.

Unload(TimeSpan)

Speichert eine Workflowinstanz im Persistenzspeicher und entlädt sie, wobei das angegebene Timeoutintervall verwendet wird.Persists and unloads a workflow instance using the specified time-out interval.

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

Parameter

timeout
TimeSpan

Das Intervall, in dem der Entladevorgang abgeschlossen werden muss, bevor der Vorgang abgebrochen und eine TimeoutException ausgelöst wird.The interval in which the unload operation must complete before the operation is canceled and a TimeoutException is thrown.

Beispiele

Das folgende Codebeispiel ist Teil des nopersistscope-Aktivitäts Beispiels.The following code example is part of the NoPersistScope Activity sample. In diesem Beispiel befindet sich der Workflow im Leerlauf, und die Hostanwendung wartet auf eine Benutzereingabe.In this example, the workflow is idle and the host application is waiting for user input. Wenn der Benutzer das Entladen auswählt, wird Unload aufgerufen.If the user chooses to unload, Unload is called. Bei Erfolg wird der Workflow beibehalten und aus dem Arbeitsspeicher entladen.If successful, the workflow is persisted and unloaded from memory.

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

Hinweise

Wenn die Workflowinstanz zuvor aus dem permanenten Speicher geladen wurde, wird für den permanenten Speicher der InstanceStore verwendet, mit dem der Workflow geladen wurde.If the workflow instance was previously loaded from persistence, then the same InstanceStore used to load the workflow is used for persistence. Wenn der Workflow erstellt und noch nicht permanent gespeichert wurde, muss vor dem Aufrufen dieser Methode ein InstanceStore konfiguriert werden. Andernfalls wird beim Aufrufen dieser Methode eine InvalidOperationException ausgelöst.If the workflow was created and has not yet been persisted, then an InstanceStore must be configured before calling this method or else an InvalidOperationException is thrown when this method is called.

Unload()

Speichert eine Workflowinstanz im Persistenzspeicher und entlädt sie.Persists and unloads a workflow instance.

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

Beispiele

Das folgende Codebeispiel ist Teil des nopersistscope-Aktivitäts Beispiels.The following code example is part of the NoPersistScope Activity sample. In diesem Beispiel befindet sich der Workflow im Leerlauf, und die Hostanwendung wartet auf eine Benutzereingabe.In this example, the workflow is idle and the host application is waiting for user input. Wenn der Benutzer das Entladen auswählt, wird Unload aufgerufen.If the user chooses to unload, Unload is called. Bei Erfolg wird der Workflow beibehalten und aus dem Arbeitsspeicher entladen.If successful, the workflow is persisted and unloaded from memory.

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

Hinweise

Standardmäßig muss der Entladevorgang innerhalb von 30 Sekunden abgeschlossen sein. Andernfalls wird eine TimeoutException ausgelöst.By default, the unload operation must complete in 30 seconds or a TimeoutException is thrown.

Wenn die Workflowinstanz zuvor aus dem permanenten Speicher geladen wurde, wird für den permanenten Speicher der InstanceStore verwendet, mit dem der Workflow geladen wurde.If the workflow instance was previously loaded from persistence, then the same InstanceStore used to load the workflow is used for persistence. Wenn der Workflow erstellt und noch nicht permanent gespeichert wurde, muss vor dem Aufrufen dieser Methode ein InstanceStore konfiguriert werden. Andernfalls wird beim Aufrufen dieser Methode eine InvalidOperationException ausgelöst.If the workflow was created and has not yet been persisted, then an InstanceStore must be configured before calling this method or else an InvalidOperationException is thrown when this method is called.

Gilt für: