WorkflowInstance.EnqueueItem メソッド

定義

指定したワークフロー キューにメッセージを同期的に投稿します。

public:
 void EnqueueItem(IComparable ^ queueName, System::Object ^ item, System::Workflow::Runtime::IPendingWork ^ pendingWork, System::Object ^ workItem);
public void EnqueueItem(IComparable queueName, object item, System.Workflow.Runtime.IPendingWork pendingWork, object workItem);
member this.EnqueueItem : IComparable * obj * System.Workflow.Runtime.IPendingWork * obj -> unit
Public Sub EnqueueItem (queueName As IComparable, item As Object, pendingWork As IPendingWork, workItem As Object)

パラメーター

queueName
IComparable

WorkflowQueueの名前。

item
Object

エンキューするオブジェクト。

pendingWork
IPendingWork

IPendingWorkが配信されたときに送信者に通知を受け取ることができるitem

workItem
Object

IPendingWork メソッドに渡されるオブジェクト。

例外

queueName は null 参照です (Visual Basic では Nothing)。

ワークフロー ランタイム エンジンが実行されていません。

-又は-

WorkflowQueueで指定されたqueueNameが存在しません。

-又は-

WorkflowQueueで指定されたqueueNameが有効になっていません。

注釈

指定したitemWorkflowQueueを送信します。 メッセージが配信されたときに通知を受け取る場合は、サービスに IPendingWork を実装し、 workItemIPendingWork オブジェクトを EnqueueItemに渡すことができます。 このような通知が不要な場合は、NothingpendingWork の null 参照 (Visual Basic の workItem) を渡すことができます。

ステート マシン ワークフローでこのメソッドを使用すると、"キュー '{0}' が有効になっていません" というメッセージで例外が発生することがあります。これは、ステート マシンの現在の状態が特定のイベントの処理方法を認識していない場合に発生します。 たとえば、現在の状態以外の状態に、キュー 'EventDrivenActivity' によって表されるHandleExternalEventActivityを含む{0}が含まれている場合です。

Note

メッセージは、ワークフロー インスタンスが送信された順序で受信されるとは限りません。 たとえば、既存のキュー (キュー A) でメッセージを受信すると、ワークフローが別のキュー (キュー B) を作成し、最初のメッセージの後に送信された別のメッセージをリッスンする場合、2 番目のメッセージが最初に到着し、キューがまだ作成されていないために受信されない可能性があります。 この問題を回避するには、2 番目のキューが存在することを確認するまで ( GetWorkflowQueueDataを使用して) 2 番目のメッセージを送信しないでください。

適用対象