WorkflowInstance.EnqueueItem Méthode

Définition

Publie un message dans la file d’attente de flux de travail spécifiée de manière synchrone.

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)

Paramètres

queueName
IComparable

Nom du WorkflowQueue.

item
Object

Objet à mettre en file d’attente.

pendingWork
IPendingWork

Qui IPendingWork permet à l’expéditeur d’être averti lorsqu’il item est remis.

workItem
Object

Objet à passer aux IPendingWork méthodes.

Exceptions

queueName est une référence Null (Nothing dans Visual Basic).

Le moteur d’exécution de workflow n’est pas en cours d’exécution.

-ou-

Le WorkflowQueue paramètre spécifié queueName par n’existe pas.

-ou-

Le WorkflowQueue paramètre spécifié par queueName n’est pas activé.

Remarques

Envoie la item valeur à l’objet spécifié WorkflowQueue. Si vous souhaitez être averti lorsque le message est remis, vous pouvez implémenter IPendingWork dans votre service et transmettre un workItem objet à IPendingWorkEnqueueItem. Si vous ne souhaitez pas cette notification, vous pouvez transmettre une référence Null (Nothing dans Visual Basic) pour pendingWork et workItem.

Lorsque vous utilisez cette méthode avec un flux de travail d’ordinateur d’état, vous pouvez obtenir une exception avec le message « File d’attente « N’est{0} pas activé ». Cela se produit lorsque l’état actuel de l’ordinateur d’état ne sait pas comment gérer un événement spécifique. Par exemple, quand un état autre que l’état actuel contient celui EventDrivenActivity qui contient celui HandleExternalEventActivity représenté par la file d’attente «{0} ».

Note

Les messages ne sont pas garantis pour être reçus par l’instance de flux de travail dans l’ordre dans lequel ils ont été envoyés. Par exemple, si la réception d’un message dans une file d’attente existante (file d’attente A) entraîne la création d’une autre file d’attente (file d’attente B), qui écoute ensuite un autre message envoyé après le premier message, il est possible que le deuxième message arrive en premier et ne soit pas reçu en raison de sa file d’attente qui n’est pas encore créée. Pour éviter ce problème, le deuxième message ne doit pas être envoyé tant que la présence de la deuxième file d’attente n’est pas vérifiée (à l’aide GetWorkflowQueueDatade .)

S’applique à