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是空引用(Visual Basic 中的 Nothing)。

工作流运行时引擎未运行。

-或-

工作流实例已挂起。

-或-

指定 WorkflowQueuequeueName 不存在。

-或-

WorkflowQueue未启用指定者queueName

注解

等待工作流实例变为空闲状态,然后将该 item 实例发送到指定的 WorkflowQueue实例。 如果在工作流实例暂停时调用 EnqueueItemOnIdle ,则工作流运行时引擎将引发一个 InvalidOperationException。 如果要在传递消息时收到通知,可以在服务中实现 IPendingWork 并将 a workItem 和对象 IPendingWork 传递给 EnqueueItem。 如果不希望此类通知,可以传递 pendingWork Visual Basic 和 workItem 的 null 引用(Nothing)。

将此方法用于状态机工作流时,可能会收到包含消息“未启用队列''{0}”的异常。当状态机的当前状态不知道如何处理特定事件时,将发生这种情况。 例如,当当前状态以外的某些状态包含EventDrivenActivity包含队列“”{0}所表示的状态HandleExternalEventActivity时。

适用于