WorkflowInstance.EnqueueItemOnIdle Método

Definição

Posta uma mensagem na fila de fluxo de trabalho especificada quando o fluxo de trabalho está ocioso. EnqueueItemOnIdle(IComparable, Object, IPendingWork, Object) aguarda até que o fluxo de trabalho atinja um ponto ocioso e enfileira depois de verificar se o agendador de fluxo de trabalho está ocioso (ou seja, nenhuma operação ativa está sendo executada).

public:
 void EnqueueItemOnIdle(IComparable ^ queueName, System::Object ^ item, System::Workflow::Runtime::IPendingWork ^ pendingWork, System::Object ^ workItem);
public void EnqueueItemOnIdle(IComparable queueName, object item, System.Workflow.Runtime.IPendingWork pendingWork, object workItem);
member this.EnqueueItemOnIdle : IComparable * obj * System.Workflow.Runtime.IPendingWork * obj -> unit
Public Sub EnqueueItemOnIdle (queueName As IComparable, item As Object, pendingWork As IPendingWork, workItem As Object)

Parâmetros

queueName
IComparable

O nome do WorkflowQueue.

item
Object

O objeto a ser enfileirado.

pendingWork
IPendingWork

Um IPendingWork que permite que o remetente seja notificado quando item for entregue.

workItem
Object

Um objeto a ser passado para os IPendingWork métodos.

Exceções

queueName é uma referência nula (Nothing em Visual Basic).

O mecanismo de runtime de fluxo de trabalho não está em execução.

- ou -

A instância do fluxo de trabalho está suspensa.

- ou -

O WorkflowQueue especificado por queueName não existe.

- ou -

O WorkflowQueue especificado por queueName não está habilitado.

Comentários

Aguarda que a instância do fluxo de trabalho fique ociosa e, em seguida, envia o item para o especificado WorkflowQueue. Se você chamar EnqueueItemOnIdle enquanto a instância de fluxo de trabalho estiver suspensa, o mecanismo de runtime do fluxo de trabalho gerará um InvalidOperationException. Se você quiser ser notificado quando a mensagem for entregue, você poderá implementar IPendingWork em seu serviço e passar um objeto e um workItemIPendingWork objeto para EnqueueItem. Se você não quiser essa notificação, poderá passar uma referência nula (Nothing em Visual Basic) para pendingWork e workItem.

Quando você estiver usando esse método com um fluxo de trabalho do computador de estado, poderá obter uma exceção que contenha a mensagem "Fila '{0}' não está habilitada". Isso ocorre quando o estado atual do computador de estado não sabe como lidar com um evento específico. Por exemplo, quando algum estado diferente do estado atual contém o EventDrivenActivity que contém o HandleExternalEventActivity que é representado pela fila '{0}'.

Aplica-se a