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 имеется доступный элемент. |