Partage via


WorkflowEventArgs Classe

Définition

Attention

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Fournit des données pour les événements de workflow.

public ref class WorkflowEventArgs : EventArgs
public class WorkflowEventArgs : EventArgs
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class WorkflowEventArgs : EventArgs
type WorkflowEventArgs = class
    inherit EventArgs
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type WorkflowEventArgs = class
    inherit EventArgs
Public Class WorkflowEventArgs
Inherits EventArgs
Héritage
WorkflowEventArgs
Dérivé
Attributs

Exemples

L'exemple de code suivant montre comment obtenir un objet WorkflowInstance à l'aide de la propriété WorkflowInstance lorsqu'une méthode de gestion d'événements est appelée. Lorsque l'événement WorkflowIdled se produit, la méthode OnWorkflowIdled définie dans cet exemple est appelée. Il détermine quel workflow est désactivé à l’aide de la propriété WorkflowInstance puis obtient une collection d’éléments en file d’attente pour l’instance de workflow en appelant la méthode GetWorkflowQueueData. Le code itère au sein de la collection pour déterminer quelle activité attend l’événement ayant désactivé le workflow. Il envoie alors une exception à la file d'attente de workflow à l'aide de la méthode EnqueueItem avec le nom de l'élément de la file d'attente de l'événement.

Cet exemple de code fait partie de l'exemple de Kit de développement logiciel Canceling a Workflow (SDK) du fichier Program.cs. Pour plus d’informations, consultez Annulation d’un flux de travail.

static void OnWorkflowIdled(object sender, WorkflowEventArgs e)
{
    WorkflowInstance workflow = e.WorkflowInstance;

    Console.WriteLine("\n...waiting for 3 seconds... \n");
    Thread.Sleep(3000);

    // what activity is blocking the workflow
    ReadOnlyCollection<WorkflowQueueInfo> wqi = workflow.GetWorkflowQueueData();
    foreach (WorkflowQueueInfo q in wqi)
    {
        EventQueueName eq = q.QueueName as EventQueueName;
        if (eq != null)
        {
            // get activity that is waiting for event
            ReadOnlyCollection<string> blockedActivity = q.SubscribedActivityNames;
            Console.WriteLine("Host: Workflow is blocked on " + blockedActivity[0]);

            // this event is never going to arrive eg. employee left the company
            // lets send an exception to this queue
            // it will either be handled by exception handler that was modeled in workflow
            // or the runtime will unwind running compensation handlers and exit the workflow
            Console.WriteLine("Host: This event is not going to arrive");
            Console.WriteLine("Host: Cancel workflow with unhandled exception");
            workflow.EnqueueItem(q.QueueName, new Exception("ExitWorkflowException"), null, null);
        }
    }
}
Shared Sub OnWorkflowIdled(ByVal sender As Object, ByVal e As WorkflowEventArgs)
    Dim workflow As WorkflowInstance = e.WorkflowInstance

    Console.WriteLine(vbCrLf + "...waiting for 3 seconds... " + vbCrLf)
    Thread.Sleep(3000)

    ' what activity is blocking the workflow
    Dim wqi As ReadOnlyCollection(Of WorkflowQueueInfo) = workflow.GetWorkflowQueueData()
    For Each q As WorkflowQueueInfo In wqi

        Dim eq As EventQueueName = TryCast(q.QueueName, EventQueueName)

        If eq IsNot Nothing Then
            ' get activity that is waiting for event
            Dim blockedActivity As ReadOnlyCollection(Of String) = q.SubscribedActivityNames
            Console.WriteLine("Host: Workflow is blocked on " + blockedActivity(0))

            ' this event is never going to arrive eg. employee left the company
            ' lets send an exception to this queue
            ' it will either be handled by exception handler that was modeled in workflow
            ' or the runtime will unwind running compensation handlers and exit the workflow
            Console.WriteLine("Host: This event is not going to arrive")
            Console.WriteLine("Host: Cancel workflow with unhandled exception")
            workflow.EnqueueItem(q.QueueName, New Exception("ExitWorkflowException"), Nothing, Nothing)
        End If
    Next
End Sub

Remarques

Notes

Ce document décrit les types et les espaces de noms qui sont obsolètes. Pour plus d’informations, consultez Types dépréciés dans Windows Workflow Foundation 4.5.

Les événements de workflow sont associés à une instance de workflow. Une WorkflowEventArgs contient la WorkflowInstance associée à l'événement de workflow. Un WorkflowEventArgs ou un objet qui dérive de la classe WorkflowEventArgs fournit les données pour tous les événements de flux de travail dans la classe WorkflowRuntime. WorkflowEventArgs est la classe de base des classes WorkflowCompletedEventArgs, WorkflowSuspendedEventArgs et WorkflowTerminatedEventArgs.

Propriétés

WorkflowInstance
Obsolète.

Obtient l'instance de workflow associée à l'événement de workflow.

Méthodes

Equals(Object)
Obsolète.

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()
Obsolète.

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()
Obsolète.

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()
Obsolète.

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()
Obsolète.

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi