WorkflowInstance.EnqueueItem Methode

Definition

Sendet eine Nachricht synchron in der angegebenen Workflowwarteschlange.

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)

Parameter

queueName
IComparable

Der Name des WorkflowQueue.

item
Object

Das Objekt, das queue.

pendingWork
IPendingWork

Eine IPendingWork , die es dem Absender ermöglicht, benachrichtigt zu werden, wenn item er zugestellt wird.

workItem
Object

Ein Objekt, das an die IPendingWork Methoden übergeben werden soll.

Ausnahmen

queueName ist ein Nullverweis (Nothing in Visual Basic).

Das Workflowlaufzeitmodul wird nicht ausgeführt.

-oder-

Das WorkflowQueue angegebene By queueName ist nicht vorhanden.

-oder-

Die WorkflowQueue angegebene Angabe queueName ist nicht aktiviert.

Hinweise

Sendet den item Wert an die angegebene WorkflowQueue. Wenn Sie benachrichtigt werden möchten, wenn die Nachricht zugestellt wird, können Sie sie in Ihrem Dienst implementieren IPendingWork und ein workItem Objekt IPendingWork übergeben.EnqueueItem Wenn Sie diese Benachrichtigung nicht wünschen, können Sie einen NULL-Verweis (Nothing in Visual Basic) für pendingWork und workItem übergeben.

Wenn Sie diese Methode mit einem Zustandsautomatworkflow verwenden, wird möglicherweise eine Ausnahme mit der Meldung "Warteschlange '{0}' ist nicht aktiviert" angezeigt. Dies geschieht, wenn der aktuelle Zustand des Zustandscomputers nicht weiß, wie ein bestimmtes Ereignis behandelt wird. Wenn beispielsweise ein anderer Zustand als der aktuelle Zustand die enthalten, die EventDrivenActivity durch HandleExternalEventActivity die Warteschlange '{0}' dargestellt wird.

Note

Nachrichten werden nicht garantiert von der Workflowinstanz in der Reihenfolge empfangen, in der sie gesendet wurden. Wenn beispielsweise eine Nachricht in einer vorhandenen Warteschlange empfangen wird (Warteschlange A) bewirkt, dass ein Workflow eine andere Warteschlange (Warteschlange B) erstellt, die dann nach der ersten Nachricht gesendete nachricht lauscht, ist es möglich, dass die zweite Nachricht zuerst eintrifft und aufgrund der noch nicht erstellten Warteschlange empfangen wird. Um dieses Problem zu verhindern, sollte die zweite Nachricht erst gesendet werden, wenn das Vorhandensein der zweiten Warteschlange überprüft wird (mithilfe GetWorkflowQueueDatavon .)

Gilt für: