Compartilhar via


WorkflowEventArgs Classe

Definição

Cuidado

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

Fornece dados para eventos de fluxo de trabalho.

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
Herança
WorkflowEventArgs
Derivado
Atributos

Exemplos

O exemplo de código a seguir demonstra como obter um WorkflowInstance objeto usando a WorkflowInstance propriedade quando um método de manipulador de eventos é chamado. Quando o WorkflowIdled evento ocorre, o OnWorkflowIdled método definido neste exemplo é chamado. Ele determina qual fluxo de trabalho está ocioso usando a WorkflowInstance propriedade e obtém uma coleção de itens enfileirados para a instância de fluxo de trabalho chamando o GetWorkflowQueueData método . O código itera sobre a coleção para determinar qual atividade está aguardando o evento que ociosidade do fluxo de trabalho. Em seguida, ele envia uma exceção para a fila de fluxo de trabalho usando o EnqueueItem método junto com o nome do item da fila de eventos.

Este exemplo de código faz parte do Exemplo de Cancelamento de um SDK de Fluxo de Trabalho do arquivo Program.cs. Para obter mais informações, consulte Cancelando um fluxo de trabalho.

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

Comentários

Observação

Este material discute tipos e namespaces obsoletos. Para obter mais informações, consulte Deprecated Types in Windows Workflow Foundation 4.5 (Tipos preteridos no Windows Workflow Foundation 4.5).

Os eventos de fluxo de trabalho são associados a uma instância de fluxo de trabalho. Um WorkflowEventArgs contém o WorkflowInstance associado ao evento de fluxo de trabalho. Um WorkflowEventArgs ou um objeto que deriva da WorkflowEventArgs classe fornece os dados para todos os eventos de fluxo de trabalho na WorkflowRuntime classe . WorkflowEventArgs é a classe base de WorkflowCompletedEventArgs, WorkflowSuspendedEventArgs e WorkflowTerminatedEventArgs.

Propriedades

WorkflowInstance
Obsoleto.

Obtém a instância de fluxo de trabalho associada ao evento de fluxo de trabalho.

Métodos

Equals(Object)
Obsoleto.

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()
Obsoleto.

Serve como a função de hash padrão.

(Herdado de Object)
GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()
Obsoleto.

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()
Obsoleto.

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também