Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Unload Method (TimeSpan)
Collapse the table of content
Expand the table of content

WorkflowApplication.Unload Method (TimeSpan)

.NET Framework 4.6 and 4.5

Persists and unloads a workflow instance using the specified time-out interval.

Namespace:  System.Activities
Assembly:  System.Activities (in System.Activities.dll)

public void Unload(
	TimeSpan timeout
)

Parameters

timeout
Type: System.TimeSpan

The interval in which the unload operation must complete before the operation is canceled and a TimeoutException is thrown.

If the workflow instance was previously loaded from persistence, then the same InstanceStore used to load the workflow is used for persistence. 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.

The following code example is part of the NoPersistScope activity sample. In this example, the workflow is idle and the host application is waiting for user input. If the user chooses to unload, Unload is called. 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();
}

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4
Show:
© 2015 Microsoft