Partager via


WorkflowQueue.Dequeue Méthode

Définition

Supprime et renvoie l'objet au début de la WorkflowQueue.

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

Retours

Objet supprimé du début de la WorkflowQueue.

Exceptions

Exemples

L'exemple de code suivant présente la création d'une WorkflowQueue en appelant la méthode WorkflowQueuingService.GetWorkflowQueue. Il utilise également la propriété Count pour déterminer si tous les messages existent dans la file d'attente actuelle. Enfin, le code utilise la méthode Dequeue pour supprimer et renvoyer le premier objet dans la file d'attente.

Cet exemple de code fait partie de l'exemple du Kit de développement logiciel File Watcher Activity (SDK) et provient du fichier FileSystemEvent.cs. Pour plus d’informations, consultez Activité de l’observateur du système de fichiers.

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

Remarques

Vous pouvez vérifier le Count pour déterminer si la WorkflowQueue est vide avant d'appeler Dequeue ou vous pouvez intercepter la InvalidOperationException.

S’applique à

Voir aussi