WorkflowInstance.EnqueueItemOnIdle メソッド

定義

ワークフローがアイドル状態のときに、指定したワークフロー キューにメッセージを投稿します。 EnqueueItemOnIdle(IComparable, Object, IPendingWork, Object) は、ワークフローがアイドル ポイントに達するまで待機し、ワークフロー スケジューラがアイドル状態であることを確認した後にエンキューします (つまり、アクティブな操作は実行されていません)。

public:
 void EnqueueItemOnIdle(IComparable ^ queueName, System::Object ^ item, System::Workflow::Runtime::IPendingWork ^ pendingWork, System::Object ^ workItem);
public void EnqueueItemOnIdle(IComparable queueName, object item, System.Workflow.Runtime.IPendingWork pendingWork, object workItem);
member this.EnqueueItemOnIdle : IComparable * obj * System.Workflow.Runtime.IPendingWork * obj -> unit
Public Sub EnqueueItemOnIdle (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を送信します。 ワークフロー インスタンスが中断されている間に EnqueueItemOnIdle を呼び出すと、ワークフロー ランタイム エンジンは InvalidOperationExceptionをスローします。 メッセージが配信されたときに通知を受け取る場合は、サービスに IPendingWork を実装し、 workItemIPendingWork オブジェクトを EnqueueItemに渡すことができます。 このような通知が不要な場合は、NothingpendingWork の null 参照 (Visual Basic の workItem) を渡すことができます。

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

適用対象