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>) |
已淘汰.
註冊 QueueItemAvailable 事件的訂閱者。 |
RegisterForQueueItemAvailable(IActivityEventListener<QueueEventArgs>, String) |
已淘汰.
註冊 QueueItemAvailable 事件的訂閱者。 |
ToString() |
已淘汰.
傳回代表目前物件的字串。 (繼承來源 Object) |
UnregisterForQueueItemArrived(IActivityEventListener<QueueEventArgs>) |
已淘汰.
取消 QueueItemArrived 事件的訂閱者註冊。 |
UnregisterForQueueItemAvailable(IActivityEventListener<QueueEventArgs>) |
已淘汰.
取消 QueueItemAvailable 事件的訂閱者註冊。 |
事件
QueueItemArrived |
已淘汰.
在此 WorkflowQueue 上傳遞項目時發生。 |
QueueItemAvailable |
已淘汰.
在此 WorkflowQueue 上提供項目時發生。 |