WorkflowRuntime.WorkflowUnloaded WorkflowRuntime.WorkflowUnloaded WorkflowRuntime.WorkflowUnloaded WorkflowRuntime.WorkflowUnloaded Event

Definition

Tritt ein, wenn die Workflowinstanz aus dem Arbeitsspeicher entladen wird.Occurs when the workflow instance is unloaded from memory.

public:
 event EventHandler<System::Workflow::Runtime::WorkflowEventArgs ^> ^ WorkflowUnloaded;
public event EventHandler<System.Workflow.Runtime.WorkflowEventArgs> WorkflowUnloaded;
member this.WorkflowUnloaded : EventHandler<System.Workflow.Runtime.WorkflowEventArgs> 
Public Event WorkflowUnloaded As EventHandler(Of WorkflowEventArgs) 

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die WorkflowRuntime-Funktionalität eines Workflowhosts verwenden können.The following code example demonstrates how to use WorkflowRuntime functionality from a workflow host. Der Code ordnet WorkflowUnloaded einem Ereignishandler zu. Hierbei handelt es sich um eine Methode mit dem Namen OnWorkflowUnload.The code associates the WorkflowUnloaded with an event handler, a method named OnWorkflowUnload.

Dieses Codebeispiel ist Teil des Beispiel für den benutzerdefinierten Persistenzdienst.This code example is part of the Custom Persistence Service Sample.

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");
        }
    }
}
Shared Sub Main()

    Using currentWorkflowRuntime As New WorkflowRuntime()
        Try

            ' engine will unload workflow instance when it is idle
            currentWorkflowRuntime.AddService(New FilePersistenceService(True))

            AddHandler currentWorkflowRuntime.WorkflowCreated, AddressOf OnWorkflowCreated
            AddHandler currentWorkflowRuntime.WorkflowCompleted, AddressOf OnWorkflowCompleted
            AddHandler currentWorkflowRuntime.WorkflowIdled, AddressOf OnWorkflowIdled
            AddHandler currentWorkflowRuntime.WorkflowUnloaded, AddressOf OnWorkflowUnloaded
            AddHandler currentWorkflowRuntime.WorkflowLoaded, AddressOf OnWorkflowLoaded
            AddHandler currentWorkflowRuntime.WorkflowTerminated, AddressOf OnWorkflowTerminated
            AddHandler currentWorkflowRuntime.ServicesExceptionNotHandled, AddressOf OnExceptionNotHandled

            currentWorkflowRuntime.CreateWorkflow(GetType(PersistenceServiceWorkflow)).Start()

            waitHandle.WaitOne()

        Catch e As Exception
            Console.WriteLine("Exception \n\t Source: 0} \n\t Message: 1}", e.Source, e.Message)
        Finally
            currentWorkflowRuntime.StopRuntime()
            Console.WriteLine("Workflow runtime stopped, program exiting... \n")
        End Try
    End Using
End Sub

Hinweise

Eine Workflowinstanz kann aus dem Arbeitsspeicher entladen werden, indem ein expliziter Aufruf von Unload erfolgt, oder sie kann implizit entladen werden, indem die eigene Semantik der Workflowruntime-Engine verwendet wird.A workflow instance can be unloaded from memory by an explicit call to Unload, or implicitly by the workflow run-time engine according to its own semantics. Beispielsweise entlädt das Workflow Lauf Zeit Modul eine Workflow Instanz, wenn die Instanz in den Leerlauf wechselt und die Laufzeit über WorkflowPersistenceService einen verfügt, UnloadOnIdle für trueden den Wert hat.For example, the workflow run-time engine unloads a workflow instance if the instance becomes idle and the runtime has a WorkflowPersistenceService added for which UnloadOnIdle is true.

Das Workflow Lauf Zeit Modul löst das WorkflowUnloaded -Ereignis aus, nachdem der Zustand der Workflow Instanz erfolgreich beibehalten wurde, aber bevor die Instanz im Arbeitsspeicher ungültig wird.The workflow run-time engine raises the WorkflowUnloaded event after the state of the workflow instance has been successfully persisted but before the instance is invalidated in memory. Deshalb geht ein WorkflowPersisted-Ereignis dem WorkflowUnloaded-Ereignis voraus.Therefore, a WorkflowPersisted event precedes the WorkflowUnloaded event.

Bei dem WorkflowUnloaded-Ereignis enthält der Absender die WorkflowRuntime, und WorkflowEventArgs enthält die WorkflowInstance, die dem Ereignis zugeordnet ist.For the WorkflowUnloaded event, the sender contains the WorkflowRuntime and WorkflowEventArgs contains the WorkflowInstance associated with the event.

Weitere Informationen zur Behandlung von Ereignissen finden Sie unter behandeln und Auswerfen von Ereignissen.For more information about handling events, see Handling and raising events.

Gilt für: