WorkflowQueue 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
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 时获得通知。 您可以使用 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 上可用时发生。 |