WorkflowInstance.EnqueueItem Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.)