WorkflowInstance.EnqueueItem Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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)