WorkflowInstance Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
WorkflowInstance — это упрощенная среда выполнения для каждого экземпляра для выполнения программы рабочего процесса. Его можно создать для создания нового экземпляра рабочего процесса или из существующего состояния экземпляра. API, которые WorkflowInstance.WorkflowInstanceControl предоставляются, являются минимальным набором элементов управления средой выполнения, из которых можно реализовать операции более высокого уровня. Этот набор API представляет всю функциональность среды выполнения. WorkflowInstance является абстрактным классом и использует реализацию своих абстрактных методов узла для предоставления функций узла, таких как синхронизация, сохраняемость, отслеживание и расширения.
public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
- Наследование
-
WorkflowInstance
- Производный
Комментарии
WorkflowInstance является одним потоком и предполагает, что узел синхронизирует все доступ к нему. Попытка одновременного вызова нескольких API приведет к InvalidOperationException возникновению ошибки.
Внутри системы WorkflowInstance имеется два состояния: выполнение и приостановка. Единственным способом перехода среды выполнения с приостановки на выполнение является вызов Run. Все действия (кроме приостановки) могут выполняться только во время приостановки среды выполнения. Среда выполнения будет спонтанно приостановлена в следующих ситуациях:
Произошла ошибка, неустранимая для среды выполнения. Узел будет сигнализировать OnRequestAbort через (который не сигнализирует о переходе на приостановленный), а затем уведомляется через OnNotifyPaused.
Исключение в рабочем процессе было неохвачено и побежало корень. Узел будет уведомлен с помощью OnNotifyUnhandledException метода.
Планировщик вышел из рабочих элементов и теперь Idle. Узел будет уведомлен с помощью OnNotifyPaused метода. Обратите внимание, что планировщик может завершить работу из-за простоя экземпляра или завершения экземпляра. State Значение Controller свойства можно использовать для различения двух.
Узел может запросить изменение с "Выполнение на приостановлено", вызвав RequestPause или PauseWhenPersistable методы экземпляра WorkflowInstance.WorkflowInstanceControl , возвращаемого свойством Controller . Этот запрос не должен считаться определенным ответом, что означает, что узел не должен пытаться сопоставить OnNotify* или OnRequestAbort с определенным вызовом для приостановки. В ответ на запрос приостановки среда выполнения может перейти на "Приостановлено" и вызвать OnNotifyPaused , пока планировщик по-прежнему имеет ожидающие рабочие элементы. State Значение Controller свойства можно использовать для определения того, не имеет ли планировщик больше работы или был прерван запросом на приостановку.
Метод RequestPauseWorkflowInstance.WorkflowInstanceControl экземпляра, возвращаемого Controller свойством, является единственным методом, который можно вызвать во время WorkflowInstance выполнения. Все остальные методы будут вызываться InvalidOperationException при вызове. Учитывая правила WorkflowInstance перехода из одного состояния в другое, можно определить общедоступную концепцию выполнения и приостановки следующим образом:
Выполнение — состояние между вызовом Run и следующим WorkflowInstance.OnNotify*.
Приостановлено — состояние между последним workflowInstance.OnNotify* и следующим вызовом Run.
Конструкторы
| Имя | Описание |
|---|---|
| WorkflowInstance(Activity, WorkflowIdentity) |
Инициализирует новый экземпляр WorkflowInstance класса с указанным определением рабочего процесса и удостоверением определения. |
| WorkflowInstance(Activity) |
Инициализирует новый экземпляр WorkflowInstance класса с указанным определением рабочего процесса. |
Свойства
| Имя | Описание |
|---|---|
| Controller |
WorkflowInstance.WorkflowInstanceControl Возвращает экземпляр для этогоWorkflowInstance. |
| DefinitionIdentity |
Возвращает или задает удостоверение WorkflowInstanceопределения . |
| HostEnvironment |
Возвращает или задает корневую среду для аргументов и переменных экземпляра рабочего процесса. |
| Id |
Возвращает уникальный идентификатор экземпляра рабочего процесса. |
| IsReadOnly |
Возвращает значение, указывающее, был ли инициализирован экземпляр рабочего процесса. |
| SupportsInstanceKeys |
Возвращает значение, указывающее, поддерживает ли узел связь InstanceKeys с экземпляром времени выполнения. |
| SynchronizationContext |
Возвращает или задает используемый SynchronizationContext для планирования экземпляра рабочего процесса. |
| WorkflowDefinition |
Возвращает определение рабочего процесса экземпляра рабочего процесса. |
Методы
| Имя | Описание |
|---|---|
| BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) |
Вызывается средой выполнения рабочего процесса, чтобы начать отправку ожидающих записей отслеживания участникам асинхронно. |
| DisposeExtensions() |
Вызовы Dispose() всех расширений, реализующих IDisposable. |
| EndFlushTrackingRecords(IAsyncResult) |
Вызывается средой выполнения рабочего процесса для завершения операции отслеживания. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| FlushTrackingRecords(TimeSpan) |
Вызывается средой выполнения рабочего процесса для отправки ожидающих записей отслеживания участникам отслеживания. |
| GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) |
Извлекает список действий, блокирующих обновление рабочего процесса. |
| GetExtension<T>() |
Возвращает расширение указанного типа. |
| GetExtensions<T>() |
Возвращает все расширения, найденные для указанного типа. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| Initialize(IDictionary<String,Object>, IList<Handle>) |
Вызывается узлом для инициализации экземпляра рабочего процесса со значениями аргументов и свойствами выполнения. |
| Initialize(Object, DynamicUpdateMap) |
Вызывается узлом для инициализации экземпляра рабочего процесса с состоянием выполнения рабочего процесса и картой обновления. |
| Initialize(Object) |
Вызывается узлом для инициализации экземпляра рабочего процесса с состоянием выполнения рабочего процесса. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о том, что новые ключи экземпляра должны быть связаны с этим экземпляром. |
| OnBeginFlushTrackingRecords(AsyncCallback, Object) |
Асинхронный вызов для вызова узла для очистки ожидающих отслеживания записей отслеживания участников. |
| OnBeginPersist(AsyncCallback, Object) |
Асинхронный вызов, чтобы запросить узел сохранить рабочий процесс. |
| OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о начале операции возобновления закладки. |
| OnDisassociateKeys(ICollection<InstanceKey>) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о том, что определенный набор ключей экземпляра больше не должен быть связан с этим экземпляром. |
| OnEndAssociateKeys(IAsyncResult) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о завершении операции связывания ключей. |
| OnEndFlushTrackingRecords(IAsyncResult) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о завершении операции отслеживания очистки. |
| OnEndPersist(IAsyncResult) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о завершении операции сохранения. |
| OnEndResumeBookmark(IAsyncResult) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о завершении операции возобновления закладки. |
| OnNotifyPaused() |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о переходе экземпляра рабочего процесса из состояния выполнения в приостановленное состояние. |
| OnNotifyUnhandledException(Exception, Activity, String) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел об необработанных исключениях в экземпляре рабочего процесса. |
| OnRequestAbort(Exception) |
Вызывается средой выполнения рабочего процесса, чтобы уведомить узел о том, что операция прерывания была запрошена для экземпляра рабочего процесса. |
| RegisterExtensionManager(WorkflowInstanceExtensionManager) |
Вызывается узлом для регистрации указанного диспетчера расширений, проверяет наличие всех необходимых расширений и инициализирует коллекцию используемых расширений. |
| ThrowIfReadOnly() |
Создает исключение, InvalidOperationException если экземпляр рабочего процесса инициализирован, как определено IsReadOnly. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |