Поделиться через


WorkflowQueue Класс

Определение

Внимание!

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Представляет очередь рабочего процесса.

public ref class WorkflowQueue
public class WorkflowQueue
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class WorkflowQueue
type WorkflowQueue = class
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type WorkflowQueue = class
Public Class WorkflowQueue
Наследование
WorkflowQueue
Атрибуты

Примеры

В следующем примере кода показано создание очереди WorkflowQueue с помощью вызова метода WorkflowQueuingService.GetWorkflowQueue. В нем также используется свойство Count, чтобы определить, существуют ли сообщения в текущей очереди. Наконец, в коде используется метод Dequeue для удаления первого объекта из очереди и его возврата.

Этот пример кода является частью образца File Watcher Activity из пакета SDK (файл FileSystemEvent.cs). Дополнительные сведения см. в разделе Действия наблюдателя файловой системы.

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

Комментарии

Примечание

В этом материале обсуждаются устаревшие типы и пространства имен. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.

Очереди рабочего процесса используются для передачи сообщений между узлом или службами узла и действиями в рабочем процессе. Действие может создать очередь WorkflowQueue, вызвав метод WorkflowQueuingService.CreateWorkflowQueue, а узел, служба или другое действие может вызвать метод Enqueue для добавления элемента в эту очередь WorkflowQueue. Можно подписаться на событие QueueItemAvailable, чтобы получать уведомления о поступлении элементов в очередь WorkflowQueue. Можно использовать метод Peek для проверки элемента в начале очереди WorkflowQueue, и метод Dequeue для удаления элемента из очереди WorkflowQueue. Каждая очередь WorkflowQueue связана со службой WorkflowQueuingService, которую можно использовать для выполнения других операций управления очередью WorkflowQueue, например для ее удаления. Свойство QueuingService показывает объект WorkflowQueuingService, связанный с этой очередью WorkflowQueue.

Свойства

Count
Устаревшие..

Возвращает число элементов, содержащихся в списке WorkflowQueue.

Enabled
Устаревшие..

Возвращает или задает значение, указывающее, включена ли очередь WorkflowQueue.

QueueName
Устаревшие..

Возвращает имя очереди рабочего процесса.

QueuingService
Устаревшие..

Возвращает службу организации очереди, связанную с данной очередью WorkflowQueue.

Методы

Dequeue()
Устаревшие..

Удаляет объект из начала очереди WorkflowQueue и возвращает его.

Enqueue(Object)
Устаревшие..

Добавляет объект в конец коллекции WorkflowQueue.

Equals(Object)
Устаревшие..

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()
Устаревшие..

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()
Устаревшие..

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()
Устаревшие..

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Peek()
Устаревшие..

Возвращает объект, находящийся в начале очереди WorkflowQueue, но не удаляет его.

RegisterForQueueItemArrived(IActivityEventListener<QueueEventArgs>)
Устаревшие..

Регистрирует подписчик на событие QueueItemArrived.

RegisterForQueueItemAvailable(IActivityEventListener<QueueEventArgs>, String)
Устаревшие..

Регистрирует подписчик на событие QueueItemAvailable.

RegisterForQueueItemAvailable(IActivityEventListener<QueueEventArgs>)
Устаревшие..

Регистрирует подписчик на событие QueueItemAvailable.

ToString()
Устаревшие..

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
UnregisterForQueueItemArrived(IActivityEventListener<QueueEventArgs>)
Устаревшие..

Отменяет регистрацию подписчика на событие QueueItemArrived.

UnregisterForQueueItemAvailable(IActivityEventListener<QueueEventArgs>)
Устаревшие..

Отменяет регистрацию подписчика на событие QueueItemAvailable.

События

QueueItemArrived
Устаревшие..

Происходит при доставке элемента в данную очередь WorkflowQueue.

QueueItemAvailable
Устаревшие..

Возникает, если в данной очереди WorkflowQueue имеется доступный элемент.

Применяется к

См. также раздел