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 является пустой ссылкой (Nothing в Visual Basic).
Подсистема среды выполнения рабочего процесса не запущена.
–или–
Экземпляр рабочего процесса приостановлен.
–или–
Указанный WorkflowQueuequeueName параметр не существует.
–или–
Указанный WorkflowQueue параметр queueName не включен.
Комментарии
Ожидает, когда экземпляр рабочего процесса станет неактивным, а затем отправляет его item указанному WorkflowQueueэкземпляру. При вызове EnqueueItemOnIdle во время приостановки экземпляра рабочего процесса подсистема среды выполнения рабочего процесса вызовет InvalidOperationExceptionисключение. Если вы хотите получать уведомления при доставке сообщения, вы можете реализовать IPendingWork в службе и передать объект workItemIPendingWork.EnqueueItem Если такое уведомление не требуется, можно передать пустую ссылку (Nothing в Visual Basic) для pendingWork и workItem.
При использовании этого метода с рабочим процессом компьютера состояния может появиться исключение, содержащее сообщение "Очередь"{0} не включено". Это происходит, когда текущее состояние компьютера состояния не знает, как обрабатывать определенное событие. Например, если какое-то состояние, отличное от текущего состояния, содержит тот, который содержит EventDrivenActivityHandleExternalEventActivity объект, представленный очередью "{0}".