WorkflowInstance.EnqueueItemOnIdle Método

Definição

Publica uma mensagem na fila de workflow especificada quando o workflow está inativo. EnqueueItemOnIdle(IComparable, Object, IPendingWork, Object) espera até que o fluxo de trabalho atinja um ponto de inatividade e entra em fila após verificar que o agendador de workflow está inativo (ou seja, que nenhuma operação ativa está a ser 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 enfileirar.

pendingWork
IPendingWork

E IPendingWork que permite que o remetente seja notificado quando item é 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 motor de execução de workflow não está a correr.

-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á ativado.

Observações

Espera que a instância do fluxo de trabalho fique inativa e depois envia para item o especificado WorkflowQueue. Se chamar EnqueueItemOnIdle enquanto a instância do fluxo de trabalho está suspensa, o motor de execução do workflow irá lançar um InvalidOperationExceptionarquivo . Se quiser ser notificado quando a mensagem for entregue, pode implementar IPendingWork no seu serviço e passar um workItem e um IPendingWork objeto para EnqueueItem. Se não quiser essa notificação, pode passar uma referência nula (Nothing em Visual Basic) para pendingWork e workItem.

Quando utiliza este método com um fluxo de trabalho de máquina de estados, pode obter uma exceção que contém a mensagem "Queue"{0} não está ativada." Isto ocorre quando o estado atual da máquina de estados 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