WorkflowRuntime.WorkflowUnloaded Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit lorsque l'instance de workflow est déchargée de la mémoire.
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 Custom Event WorkflowUnloaded As EventHandler(Of WorkflowEventArgs)
Public Event WorkflowUnloaded As EventHandler(Of WorkflowEventArgs)
Type d'événement
Exemples
L'exemple de code suivant montre comment utiliser les fonctionnalités WorkflowRuntime d'un hôte de workflow. Le code associe l'événement WorkflowUnloaded à un gestionnaire d'événements, méthode qui est nommée OnWorkflowUnload
.
Cet exemple de code fait partie de l’exemple de service de persistance personnalisée.
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
Remarques
Une instance de workflow peut être déchargée de la mémoire par un appel explicite à la méthode Unload ou implicitement par le moteur d'exécution de workflow, en fonction de sa propre sémantique. Par exemple, le moteur d’exécution du flux de travail décharge un flux de travail instance si le instance devient inactif et que le runtime a ajouté un WorkflowPersistenceService pour lequel UnloadOnIdle est true
.
Le moteur d’exécution du flux de travail déclenche l’événement WorkflowUnloaded
une fois que l’état du instance de flux de travail a été correctement conservé, mais avant que le instance ne soit invalidé en mémoire. Par conséquent, un événement WorkflowPersisted précède l'événement WorkflowUnloaded.
Pour l'événement WorkflowUnloaded
, l'expéditeur contient l'objet WorkflowRuntime et l'objet WorkflowEventArgs contient l'objet WorkflowInstance associé à l'événement.
Pour plus d’informations sur la gestion des événements, consultez Gestion et déclenchement d’événements.