WorkflowInstance.EnqueueItemOnIdle Método

Definición

Envía un mensaje a la cola de flujo de trabajo especificada cuando el flujo de trabajo está inactivo. EnqueueItemOnIdle(IComparable, Object, IPendingWork, Object) espera hasta que el flujo de trabajo alcanza un punto inactivo y se puesta en cola después de comprobar que el programador de flujo de trabajo está inactivo (es decir, no se ejecuta ninguna operación activa).

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

El nombre del WorkflowQueue.

item
Object

Objeto que se va a poner en cola.

pendingWork
IPendingWork

que IPendingWork permite que el remitente se notifique cuando item se entregue.

workItem
Object

Objeto que se va a pasar a los IPendingWork métodos.

Excepciones

queueName es una referencia nula (Nothing en Visual Basic).

El motor en tiempo de ejecución de flujo de trabajo no se está ejecutando.

O bien

La instancia de flujo de trabajo está suspendida.

O bien

El WorkflowQueue especificado por queueName no existe.

O bien

El WorkflowQueue especificado por queueName no está habilitado.

Comentarios

Espera a que la instancia de flujo de trabajo quede inactiva y, a continuación, envía el item objeto a la especificada WorkflowQueue. Si llama a EnqueueItemOnIdle mientras se suspende la instancia de flujo de trabajo, el motor en tiempo de ejecución de flujo de trabajo producirá una InvalidOperationExceptionexcepción . Si desea recibir una notificación cuando se entregue el mensaje, puede implementar IPendingWork en el servicio y pasar un workItem objeto y IPendingWork a EnqueueItem. Si no desea dicha notificación, puede pasar una referencia nula (Nothing en Visual Basic) para pendingWork y workItem.

Cuando se usa este método con un flujo de trabajo de máquina de estado, es posible que reciba una excepción que contenga el mensaje "Cola '{0}' no está habilitada". Esto ocurre cuando el estado actual de la máquina de estado no sabe cómo controlar un evento específico. Por ejemplo, cuando algún estado distinto del estado actual contiene que contiene el EventDrivenActivityHandleExternalEventActivity objeto representado por la cola "{0}".

Se aplica a