WorkflowEventArgs Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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) |