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 方法移除并返回队列中的第一个对象。

此代码示例摘自 FileSystemEvent.cs 文件的“文件观察程序活动”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

注解

注意

本材料讨论的类型和命名空间已废弃不用。 有关详细信息,请参阅 Windows Workflow Foundation 4.5 中弃用的类型

工作流队列用于在主机或主机服务与工作流中的活动之间传递消息。 任何活动均可以通过调用 WorkflowQueue 来创建 WorkflowQueuingService.CreateWorkflowQueue,并且宿主、服务或其他活动可以调用 Enqueue 来向该 WorkflowQueue 添加项。 您可以订阅 QueueItemAvailable 事件,以便在项到达 WorkflowQueue 时获得通知。 您可以使用 PeekWorkflowQueue 的开始处检查项,并使用 DequeueWorkflowQueue 中移除项。 每个 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>)
已过时.

QueueItemAvailable 事件注册一个订户。

RegisterForQueueItemAvailable(IActivityEventListener<QueueEventArgs>, String)
已过时.

QueueItemAvailable 事件注册一个订户。

ToString()
已过时.

返回表示当前对象的字符串。

(继承自 Object)
UnregisterForQueueItemArrived(IActivityEventListener<QueueEventArgs>)
已过时.

QueueItemArrived 事件取消注册一个订户。

UnregisterForQueueItemAvailable(IActivityEventListener<QueueEventArgs>)
已过时.

QueueItemAvailable 事件取消注册一个订户。

事件

QueueItemArrived
已过时.

在此 WorkflowQueue 上传送项时发生。

QueueItemAvailable
已过时.

当项在此 WorkflowQueue 上可用时发生。

适用于

另请参阅