WorkflowInstance.EnqueueItem Methode

Definitie

Hiermee wordt een bericht synchroon in de opgegeven werkstroomwachtrij geplaatst.

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)

Parameters

queueName
IComparable

De naam van de WorkflowQueue.

item
Object

Het object dat moet worden weergegeven.

pendingWork
IPendingWork

Een IPendingWork waarmee de afzender op de hoogte kan worden gesteld wanneer item deze wordt bezorgd.

workItem
Object

Een object dat moet worden doorgegeven aan de IPendingWork methoden.

Uitzonderingen

queueName is een null-verwijzing (Nothing in Visual Basic).

De runtime-engine van de werkstroom wordt niet uitgevoerd.

– of –

De WorkflowQueue opgegeven door queueName bestaat niet.

– of –

De WorkflowQueue opgegeven door queueName is niet ingeschakeld.

Opmerkingen

Verzendt de item naar de opgegeven WorkflowQueue. Als u een melding wilt ontvangen wanneer het bericht wordt bezorgd, kunt u in uw service implementeren en een IPendingWork en een workItem object doorgeven aan IPendingWork.EnqueueItem Als u dergelijke melding niet wilt, kunt u een null-verwijzing (Nothing in Visual Basic) doorgeven voor pendingWork en workItem.

Wanneer u deze methode gebruikt met een werkstroom voor statuscomputers, krijgt u mogelijk een uitzondering met het bericht 'Wachtrij '{0}' is niet ingeschakeld.' Dit gebeurt wanneer de huidige status van de statusmachine niet weet hoe een specifieke gebeurtenis moet worden verwerkt. Als een andere status dan de huidige status bijvoorbeeld de EventDrivenActivity status bevat die de HandleExternalEventActivity status bevat die wordt vertegenwoordigd door de wachtrij '{0}'.

Note

Berichten worden niet gegarandeerd ontvangen door het werkstroomexemplaren in de volgorde waarin ze zijn verzonden. Als u bijvoorbeeld een bericht ontvangt in een bestaande wachtrij (wachtrij A) zorgt ervoor dat een werkstroom een andere wachtrij maakt (wachtrij B), die vervolgens luistert naar een ander bericht dat na het eerste bericht is verzonden, is het mogelijk dat het tweede bericht eerst binnenkomt en niet wordt ontvangen omdat de wachtrij nog niet is gemaakt. Om dit probleem te voorkomen, mag het tweede bericht pas worden verzonden als de aanwezigheid van de tweede wachtrij is geverifieerd (met . GetWorkflowQueueData)

Van toepassing op