WorkflowInstance.EnqueueItem Método

Definição

Posta uma mensagem na fila de fluxo de trabalho 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 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-

O WorkflowQueue especificado por queueName não existe.

-ou-

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

Comentários

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

Ao usar esse método com um fluxo de trabalho de computador de estado, você pode obter uma exceção com a mensagem "Fila '{0}' não está habilitada". Isso acontece 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}'.

Note

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

Aplica-se a