WorkflowEventArgs Classe

Definizione

Avviso

Questa API è ora obsoleta.

Fornisce i dati per gli eventi del flusso di lavoro.Provides data for workflow events.

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
Public Class WorkflowEventArgs
Inherits EventArgs
Ereditarietà
WorkflowEventArgs
Derivato
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come ottenere un oggetto WorkflowInstance utilizzando la proprietà WorkflowInstance quando viene chiamato un metodo del gestore eventi.The following code example demonstrates how to obtain a WorkflowInstance object using the WorkflowInstance property when an event handler method is called. Quando si verifica l'evento WorkflowIdled viene chiamato il metodo OnWorkflowIdled definito in questo esempio.When the WorkflowIdled event occurs, the OnWorkflowIdled method defined in this example is called. Determina quale flusso di lavoro venga reso inattivo mediante la proprietà WorkflowInstance e quindi ottiene una raccolta di elementi in coda per l'istanza del flusso di lavoro chiamando il metodo GetWorkflowQueueData.It determines which workflow is idled using the WorkflowInstance property and then gets a collection of queued items for the workflow instance by calling the GetWorkflowQueueData method. Il codice scorre la raccolta per determinare quale attività è in attesa dell'evento che ha sospeso il flusso di lavoro.The code iterates over the collection to determine which activity is waiting for the event that idled the workflow. Invia quindi un'eccezione alla coda del flusso di lavoro mediante il metodo EnqueueItem insieme al nome dell'elemento in coda dell'evento.It then sends an exception to the workflow queue using the EnqueueItem method along with the name of the event queue item.

Questo esempio di codice fa parte dell'esempio SDK Canceling a Workflow nel file Program.cs.This code example is part of the Canceling a Workflow SDK Sample from the Program.cs file. Per ulteriori informazioni, vedere annullamento di un flusso di lavoro.For more information, see Canceling a Workflow.

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

Commenti

Nota

In questo materiale vengono descritti tipi e spazi dei nomi obsoleti.This material discusses types and namespaces that are obsolete. Per altre informazioni, vedere Deprecated Types in Windows Workflow Foundation 4.5 (Tipi deprecati in Windows Workflow Foundation 4.5).For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

Gli eventi del flusso di lavoro sono associati a un'istanza del flusso di lavoro.Workflow events are associated with a workflow instance. WorkflowEventArgs contiene gli oggetti WorkflowInstance associati all'evento del flusso di lavoro.A WorkflowEventArgs contains the WorkflowInstance associated with the workflow event. WorkflowEventArgs o un oggetto che deriva dalla classe WorkflowEventArgs fornisce i dati per tutti gli eventi del flusso di lavoro nella classe WorkflowRuntime.A WorkflowEventArgs or an object that derives from the WorkflowEventArgs class provides the data for all of the workflow events in the WorkflowRuntime class. WorkflowEventArgs è la classe base per WorkflowCompletedEventArgs, WorkflowSuspendedEventArgs e WorkflowTerminatedEventArgs.WorkflowEventArgs is the base class for WorkflowCompletedEventArgs, WorkflowSuspendedEventArgs, and WorkflowTerminatedEventArgs.

Proprietà

WorkflowInstance

Ottiene un'istanza del flusso di lavoro associata all'evento del flusso di lavoro.Gets the workflow instance associated with the workflow event.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a

Vedi anche