WorkflowQueue.Dequeue Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
La WorkflowQueue est vide.
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.