Bagikan melalui


WorkflowQueue.Dequeue Metode

Definisi

Menghapus dan mengembalikan objek di awal WorkflowQueue.

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

Mengembalikan

Objek yang dihapus dari awal WorkflowQueue.

Pengecualian

Contoh

Contoh kode berikut menunjukkan bagaimana Anda dapat membuat WorkflowQueue dengan memanggil WorkflowQueuingService.GetWorkflowQueue metode . Ini juga menggunakan Count properti untuk menentukan apakah ada pesan dalam antrean saat ini. Terakhir, kode menggunakan Dequeue metode untuk menghapus dan mengembalikan objek pertama dalam antrean.

Contoh kode ini adalah bagian dari Sampel SDK Aktivitas Pengamat File dari file FileSystemEvent.cs. Untuk informasi selengkapnya, lihat Aktivitas Pengamat Sistem File.

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

Keterangan

Anda dapat memeriksa Count untuk menentukan apakah WorkflowQueue kosong sebelum memanggil Dequeue, atau Anda dapat menangkap InvalidOperationException.

Berlaku untuk

Lihat juga