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