Export (0) Print
Expand All

WorkflowRuntime.WorkflowUnloaded Event

Occurs when the workflow instance is unloaded from memory.

Namespace:  System.Workflow.Runtime
Assembly:  System.Workflow.Runtime (in System.Workflow.Runtime.dll)

public event EventHandler<WorkflowEventArgs> WorkflowUnloaded

A workflow instance may be unloaded from memory by an explicit call to Unload, or implicitly by the workflow runtime engine according to its own semantics. For example, the workflow runtime engine will unload a workflow instance if the instance becomes idle and the runtime has a WorkflowPersistenceService added for which UnloadOnIdle is true.

The workflow runtime engine raises the

WorkflowUnloaded event after the state of the workflow instance has been successfully persisted but before the instance is invalidated in memory. Therefore, a WorkflowPersisted event will precede the WorkflowUnloaded event.

For the WorkflowUnLoaded event, sender will contain the WorkflowRuntime and WorkflowEventArgs will contain the WorkflowInstance associated with the event.

For more information about handling events, see Consuming Events.

The following code example demonstrates how you can use WorkflowRuntime functionality from a workflow host. The code associates the WorkflowUnloaded with an event handler, a method named OnWorkflowUnload.

This code example is part of the Custom Persistence Service SDK sample from the Program.cs file. For more information, see Custom Persistence Service.

static void Main()
{
    using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
    {
        try
        {
            // engine will unload workflow instance when it is idle
            workflowRuntime.AddService(new FilePersistenceService(true));

            workflowRuntime.WorkflowCreated += OnWorkflowCreated;
            workflowRuntime.WorkflowCompleted += OnWorkflowCompleted;
            workflowRuntime.WorkflowIdled += OnWorkflowIdle;
            workflowRuntime.WorkflowUnloaded += OnWorkflowUnload;
            workflowRuntime.WorkflowLoaded += OnWorkflowLoad;
            workflowRuntime.WorkflowTerminated += OnWorkflowTerminated;
            workflowRuntime.ServicesExceptionNotHandled += OnExceptionNotHandled;

            workflowRuntime.CreateWorkflow(typeof(PersistenceServiceWorkflow)).Start();

            waitHandle.WaitOne();
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception \n\t Source: {0} \n\t Message: {1}", e.Source, e.Message);
        }
        finally
        {
            workflowRuntime.StopRuntime();
            Console.WriteLine("Workflow runtime stopped, program exiting... \n");
        }
    }
}

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0

Community Additions

ADD
Show:
© 2014 Microsoft