Udostępnij za pośrednictwem


WorkflowEventArgs Klasa

Definicja

Przestroga

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

Dostarcza dane dla zdarzeń przepływu pracy.

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
Dziedziczenie
WorkflowEventArgs
Pochodne
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak uzyskać WorkflowInstance obiekt przy użyciu WorkflowInstance właściwości po wywołaniu metody obsługi zdarzeń. Po wystąpieniu WorkflowIdled zdarzenia wywoływana jest metoda zdefiniowana OnWorkflowIdled w tym przykładzie. Określa, który przepływ pracy jest bezczynny przy użyciu WorkflowInstance właściwości , a następnie pobiera kolekcję elementów w kolejce dla wystąpienia przepływu pracy przez wywołanie GetWorkflowQueueData metody . Kod wykonuje iterację po kolekcji, aby określić, które działanie oczekuje na zdarzenie, które bezczynnie przepływ pracy. Następnie wysyła wyjątek do kolejki przepływu pracy przy użyciu EnqueueItem metody wraz z nazwą elementu kolejki zdarzeń.

Ten przykładowy kod jest częścią przykładowego zestawu SDK przepływu pracy anulowania z pliku Program.cs. Aby uzyskać więcej informacji, zobacz Anulowanie przepływu pracy.

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

Uwagi

Uwaga

W tym materiale omówiono przestarzałe typy i przestrzenie nazw. Aby uzyskać więcej informacji, zobacz Przestarzałe typy w programie Windows Workflow Foundation 4.5.

Zdarzenia przepływu pracy są skojarzone z wystąpieniem przepływu pracy. Element WorkflowEventArgs zawiera WorkflowInstance element skojarzony ze zdarzeniem przepływu pracy. Obiekt WorkflowEventArgs lub, który pochodzi z WorkflowEventArgs klasy, dostarcza dane dla wszystkich zdarzeń przepływu pracy w WorkflowRuntime klasie. WorkflowEventArgs jest klasą bazową dla WorkflowCompletedEventArgs, WorkflowSuspendedEventArgsi WorkflowTerminatedEventArgs.

Właściwości

WorkflowInstance
Przestarzałe.

Pobiera wystąpienie przepływu pracy skojarzone ze zdarzeniem przepływu pracy.

Metody

Equals(Object)
Przestarzałe.

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()
Przestarzałe.

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()
Przestarzałe.

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()
Przestarzałe.

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też