WorkflowInstance.EnqueueItemOnIdle 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在工作流处于空闲状态时,将消息发布到指定的工作流队列。 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)。
注解
等待工作流实例变为空闲状态,然后将该 item 实例发送到指定的 WorkflowQueue实例。 如果在工作流实例暂停时调用 EnqueueItemOnIdle ,则工作流运行时引擎将引发一个 InvalidOperationException。 如果要在传递消息时收到通知,可以在服务中实现 IPendingWork 并将 a workItem 和对象 IPendingWork 传递给 EnqueueItem。 如果不希望此类通知,可以传递 pendingWork Visual Basic 和 workItem 的 null 引用(Nothing)。
将此方法用于状态机工作流时,可能会收到包含消息“未启用队列''{0}”的异常。当状态机的当前状态不知道如何处理特定事件时,将发生这种情况。 例如,当当前状态以外的某些状态包含EventDrivenActivity包含队列“”{0}所表示的状态HandleExternalEventActivity时。