WorkflowInstance.EnqueueItem メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したワークフロー キューにメッセージを同期的に投稿します。
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が有効になっていません。
注釈
指定したitemにWorkflowQueueを送信します。 メッセージが配信されたときに通知を受け取る場合は、サービスに IPendingWork を実装し、 workItem と IPendingWork オブジェクトを EnqueueItemに渡すことができます。 このような通知が不要な場合は、Nothing と pendingWork の null 参照 (Visual Basic の workItem) を渡すことができます。
ステート マシン ワークフローでこのメソッドを使用すると、"キュー '{0}' が有効になっていません" というメッセージで例外が発生することがあります。これは、ステート マシンの現在の状態が特定のイベントの処理方法を認識していない場合に発生します。 たとえば、現在の状態以外の状態に、キュー 'EventDrivenActivity' によって表されるHandleExternalEventActivityを含む{0}が含まれている場合です。
Note
メッセージは、ワークフロー インスタンスが送信された順序で受信されるとは限りません。 たとえば、既存のキュー (キュー A) でメッセージを受信すると、ワークフローが別のキュー (キュー B) を作成し、最初のメッセージの後に送信された別のメッセージをリッスンする場合、2 番目のメッセージが最初に到着し、キューがまだ作成されていないために受信されない可能性があります。 この問題を回避するには、2 番目のキューが存在することを確認するまで ( GetWorkflowQueueDataを使用して) 2 番目のメッセージを送信しないでください。