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 можно использовать для определения причины прекращения работы планировщика: отсутствия рабочих элементов или прерывание запросом на приостановку.

Метод RequestPause экземпляра WorkflowInstance.WorkflowInstanceControl, возвращенный свойством Controller, является единственным методом, который может быть вызван, если WorkflowInstance находится в состоянии «выполняется». При вызове других методов будет сформировано исключение InvalidOperationException. В соответствии с правилами изменения состояния WorkflowInstance общее определение состояний «выполняется» и «приостановлено» можно сформулировать следующим образом:

  • Выполнение — состояние между вызовом Run и следующим объектом WorkflowInstance. OnNotify *.

  • Приостановка — состояние между последним WorkflowInstance. OnNotify * и следующим вызовом метода Run .

Конструкторы

WorkflowInstance(Activity)

Инициализирует новый экземпляр класса WorkflowInstance с использованием указанного определения рабочего процесса.

WorkflowInstance(Activity, WorkflowIdentity)

Инициализирует новый экземпляр класса 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)

Вызывается узлом для инициализации состояния среды выполнения экземпляра рабочего процесса.

Initialize(Object, DynamicUpdateMap)

Вызывается узлом для инициализации экземпляра рабочего процесса с состоянием среды выполнения рабочего процесса и обновления сопоставления.

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)

Применяется к