WorkflowInstance.EnqueueItem Metoda

Definice

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.)

Platí pro