WorkflowInstance.EnqueueItem Método

Definição

Publica uma mensagem na fila de workflow especificada de forma síncrona.

public:
 void EnqueueItem(IComparable ^ queueName, System::Object ^ item, System::Workflow::Runtime::IPendingWork ^ pendingWork, System::Object ^ workItem);
public void EnqueueItem(IComparable queueName, object item, System.Workflow.Runtime.IPendingWork pendingWork, object workItem);
member this.EnqueueItem : IComparable * obj * System.Workflow.Runtime.IPendingWork * obj -> unit
Public Sub EnqueueItem (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-

O WorkflowQueue especificado por queueName não existe.

-ou-

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

Observações

Envia o item para o especificado WorkflowQueue. 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.

Ao usar este método com um fluxo de trabalho de máquina de estados, pode obter uma exceção com a mensagem "Queue '{0}' is not enabled." Isto acontece 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}'.

Note

Não é garantido que as mensagens sejam recebidas pela instância do fluxo de trabalho pela ordem em que foram enviadas. Por exemplo, se receber uma mensagem numa fila existente (Fila A) faz com que um fluxo de trabalho crie outra fila (Fila B), que depois escuta outra mensagem enviada após a primeira, é possível que a segunda mensagem chegue primeiro e não seja recebida porque a sua fila ainda não foi criada. Para evitar este problema, a segunda mensagem não deve ser enviada até que a presença da segunda fila seja verificada (usando GetWorkflowQueueData.)

Aplica-se a