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 事件。 您可以使用 Peek 檢查在 WorkflowQueue 開頭的項目,以及使用 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 上提供項目時發生。

適用於

另請參閱