Freigeben über


WorkflowQueue.Dequeue Methode

Definition

Entfernt das Objekt am Anfang der WorkflowQueue und gibt es zurück.

public:
 System::Object ^ Dequeue();
public object Dequeue ();
member this.Dequeue : unit -> obj
Public Function Dequeue () As Object

Gibt zurück

Das Objekt, das vom Anfang der WorkflowQueue entfernt wird.

Ausnahmen

Beispiele

Das folgende Codebeispiel zeigt, wie Sie eine WorkflowQueue erstellen können, indem Sie die WorkflowQueuingService.GetWorkflowQueue-Methode aufrufen. Im Beispiel wird auch die Count-Eigenschaft verwendet, um zu bestimmen, ob in der aktuellen Warteschlange Meldungen vorhanden sind. Im Code wird außerdem die Dequeue-Methode verwendet, um das erste Objekt in der Warteschlange zu entfernen und zurückzugeben.

Dieses Codebeispiel stammt aus dem File Watcher Activity SDK-Beispiel in der Datei FileSystemEvent.cs. Weitere Informationen finden Sie unter Dateisystemüberwachungsaktivität.

private bool ProcessQueueItem(ActivityExecutionContext context)
{
    WorkflowQueuingService qService = context.GetService<WorkflowQueuingService>();
    if (!qService.Exists(this.QueueName))
    {
        return false;
    }

    WorkflowQueue queue = qService.GetWorkflowQueue(this.QueueName);

    // If the queue has messages, then process the first one
    if (queue.Count == 0)
    {
        return false;
    }

    FileWatcherEventArgs e = (FileWatcherEventArgs)queue.Dequeue();

    // Raise the FileSystemEvent
    base.RaiseGenericEvent<FileWatcherEventArgs>(FileSystemEvent.FileWatcherEventHandlerEvent, this, e);

    DoUnsubscribe(context, this);
    DeleteQueue(context);
    return true;
}
Private Function ProcessQueueItem(ByVal context As ActivityExecutionContext) As Boolean

    Dim qService As WorkflowQueuingService = context.GetService(Of WorkflowQueuingService)()

    If Not qService.Exists(Me.QueueName) Then
        Return False
    End If

    Dim Queue As WorkflowQueue = qService.GetWorkflowQueue(Me.QueueName)

    ' If the queue has messages, then process the first one
    If Queue.Count = 0 Then
        Return False
    End If

    Dim e As FileWatcherEventArgs = CType(Queue.Dequeue(), FileWatcherEventArgs)

    ' Raise the FileSystemEvent
    MyBase.RaiseGenericEvent(Of FileWatcherEventArgs)(FileSystemEvent.FileWatcherEventHandlerEvent, Me, e)
    DoUnsubscribe(context, Me)
    DeleteQueue(context)
    Return True
End Function

Hinweise

Sie können den Wert unter Count prüfen, um zu bestimmen, ob die WorkflowQueue leer ist, bevor Sie Dequeue aufrufen, oder Sie können die InvalidOperationException abfangen.

Gilt für:

Weitere Informationen