WorkflowInstance.EnqueueItemOnIdle Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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}".