다음을 통해 공유


WorkflowQueue.Dequeue 메서드

정의

WorkflowQueue의 시작 부분에서 개체를 제거하고 반환합니다.

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

반환

WorkflowQueue의 시작에서 제거하는 개체입니다.

예외

WorkflowQueue가 비어 있는 경우

예제

다음 코드 예제에서는 WorkflowQueue 메서드를 호출하여 WorkflowQueuingService.GetWorkflowQueue를 만드는 방법을 보여 줍니다. 또한 Count 속성을 사용하여 현재 큐에 메시지가 있는지 확인합니다. 마지막으로 이 코드에서는 Dequeue 메서드를 사용하여 큐의 첫 번째 개체를 제거하고 반환합니다.

이 코드 예제는 FileSystemEvent.cs 파일에 있는 File Watcher Activity SDK 샘플의 일부입니다. 자세한 내용은 파일 시스템 감시자 작업합니다.

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

설명

Count를 검사하여 WorkflowQueue를 호출하기 전에 Dequeue가 비어 있는지 여부를 확인하거나 InvalidOperationException을 catch할 수 있습니다.

적용 대상

추가 정보