WorkflowInstance.EnqueueItem Método

Definición

Envía un mensaje a la cola de flujo de trabajo especificada de forma sincrónica.

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

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

El WorkflowQueue especificado por queueName no existe.

O bien

El WorkflowQueue especificado por queueName no está habilitado.

Comentarios

Envía al item objeto especificado WorkflowQueue. 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.

Al usar este método con un flujo de trabajo de máquina de estado, es posible que obtenga una excepción con el mensaje "Cola '{0}' no está habilitada". Esto sucede 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}".

Note

No se garantiza que la instancia de flujo de trabajo reciba los mensajes en el orden en que se enviaron. Por ejemplo, si recibe un mensaje en una cola existente (cola A) hace que un flujo de trabajo cree otra cola (cola B), que luego escucha otro mensaje enviado después del primer mensaje, es posible que el segundo mensaje llegue primero y no se recibirá debido a que su cola aún no se crea. Para evitar este problema, no se debe enviar el segundo mensaje hasta que se compruebe la presencia de la segunda cola (mediante GetWorkflowQueueData).

Se aplica a