WorkflowInstance.EnqueueItem Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Publikuje zprávu do zadané fronty pracovního postupu synchronně.
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)
Parametry
- queueName
- IComparable
Název WorkflowQueue.
- item
- Object
Objekt, který má být zapsán do fronty.
- pendingWork
- IPendingWork
Oznámení IPendingWork , které umožňuje odesílateli dostávat oznámení při item doručení.
- workItem
- Object
Objekt, který se má předat metodám IPendingWork .
Výjimky
queueName je odkaz null (Nothing v Visual Basic).
Modul runtime pracovního postupu není spuštěný.
nebo
Zadané WorkflowQueue uživatelem queueName neexistuje.
nebo
Zadané WorkflowQueue uživatelem queueName není povoleno.
Poznámky
Odešle item zadanému WorkflowQueue. Pokud chcete být upozorněni při doručení zprávy, můžete implementovat IPendingWork ve své službě a předat workItem objekt a IPendingWork objekt .EnqueueItem Pokud takové oznámení nechcete, můžete předat odkaz null (Nothing v Visual Basic) pro pendingWork a workItem.
Při použití této metody s pracovním postupem stavového počítače se může zobrazit výjimka se zprávou "Fronta '{0} ' není povolena". K tomu dochází v případě, že aktuální stav počítače stavu neví, jak zpracovat konkrétní událost. Pokud například nějaký jiný stav než aktuální stav obsahuje EventDrivenActivityHandleExternalEventActivity ten, který je reprezentován frontou '{0}'.
Note
U instance pracovního postupu není zaručeno, že zprávy obdrží v pořadí, v jakém byly odeslány. Pokud například přijetí zprávy ve stávající frontě (fronta A) způsobí, že pracovní postup vytvoří jinou frontu (frontu B), která pak naslouchá jiné zprávě odeslané po první zprávě, je možné, že druhá zpráva přijde jako první a nebude přijata kvůli tomu, že se ještě nevytvoří. Aby se zabránilo tomuto problému, neměla by se druhá zpráva odesílat, dokud se neověří přítomnost druhé fronty (pomocí GetWorkflowQueueData.)