WorkflowInstance.EnqueueItemOnIdle Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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}'.