WorkflowInstance WorkflowInstance WorkflowInstance WorkflowInstance Class

Определение

Объект WorkflowInstance представляет упрощенную среду выполнения для каждого экземпляра, создаваемую для выполнения программы рабочего процесса.WorkflowInstance is a lightweight, per-instance runtime for executing a workflow program. Он может быть создан для создания нового экземпляра рабочего процесса или из существующего состояния экземпляра.It can be constructed to create a new workflow instance or from existing instance state. API, предоставляющие класс WorkflowInstance.WorkflowInstanceControl, являются минимальным набором элементов управления времени выполнения, с помощью которых могут быть реализованы операции более высокого уровня.The APIs that WorkflowInstance.WorkflowInstanceControl exposes are the minimal set of runtime controls from which higher level operations can be implemented. Этот набор API предоставляет доступ ко всем функциям среды выполнения.This API set represents the entire breadth of functionality of the runtime. WorkflowInstance является абстрактным классом и зависит от реализации узлом своих абстрактных методов для обеспечения таких функций узла, как синхронизация, сохраняемость, отслеживание и расширения.WorkflowInstance is an abstract class and relies on a host's implementation of its abstract methods in order to provide host functionality such as synchronization, persistence, tracking, and extensions.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Наследование
WorkflowInstanceWorkflowInstanceWorkflowInstanceWorkflowInstance
Производный

Комментарии

Класс WorkflowInstance является однопотоковым и предполагает, что узел выполняет синхронизацию доступа к нему.WorkflowInstance is single threaded and assumes that the host synchronizes all access to it. При попытке одновременного вызова нескольких API сформируется исключение InvalidOperationException.An attempt to call multiple APIs simultaneously will result in an InvalidOperationException being thrown.

Внутри компонент WorkflowInstance имеет два состояния: Запуск и приостановка.Internally, a WorkflowInstance has two states: Running and Paused. Единственным способом перевода среды выполнения из состояния «приостановлен» в состояние «выполняется» является вызов метода Run.The only way to cause the runtime to transition from paused to running is to call Run. Все действия (за исключением приостановки) могут выполняться только во время приостановки среды выполнения.All actions (except Pause) can only be taken while the runtime is Paused. Среда выполнения будет автоматически приостановлена в следующих ситуациях.The runtime will become spontaneously Paused in the following situations:

  • Произошла неустранимая ошибка среды выполнения.An error fatal to the runtime has occurred. Метод OnRequestAbort отправит уведомление узлу (что не означает переход в состояние «приостановлено»), после чего узлу будет отправлено уведомление с помощью OnNotifyPaused.The host will be signaled through OnRequestAbort (which does not signal a transition to Paused) and then notified through OnNotifyPaused.

  • Исключение в рабочем процессе не было обработано и покинуло корневой элемент.An exception in the workflow was uncaught and escaped the root. Узел будет уведомлен через метод OnNotifyUnhandledException.The host will be notified through the OnNotifyUnhandledException method.

  • Планировщик исчерпал рабочие элементы и перешел в состояние Idle.The scheduler has run out of work items and is now Idle. Узел будет уведомлен через метод OnNotifyPaused.The host will be notified through the OnNotifyPaused method. Обратите внимание, что планировщик мог исчерпать рабочие элементы из-за состояния бездействия экземпляра или по причине завершения экземпляра.Note that the scheduler could have run out of work items because the instance is idle or because the instance is complete. Значение State свойства Controller можно использовать для обнаружения этих двух причин.The State value of the Controller property can be used to differentiate between the two.

Узел может запросить изменения состояния «выполняется» на состояние «приостановлен» с помощью вызова методов RequestPause или PauseWhenPersistable экземпляра WorkflowInstance.WorkflowInstanceControl, возвращенного свойством Controller.The host can request a change from Running to Paused by calling the RequestPause or PauseWhenPersistable methods of the WorkflowInstance.WorkflowInstanceControl instance returned by the Controller property. Для этого запроса не подразумевается наличие определенного ответа, и узел не должен сопоставлять метод OnNotify* или OnRequestAbort с конкретным вызовом, который нужно приостановить.This request should not be considered to have a specific response meaning that the host should not attempt to correlate an OnNotify* or OnRequestAbort with a specific call to pause. В ответ на запрос на приостановку среда выполнения может изменить состояния на «приостановлено» и вызвать метод OnNotifyPaused при наличии у планировщика отложенных рабочих элементов.In response to a pause request, the runtime may transition to Paused and call OnNotifyPaused while the scheduler still has pending work items. Значение State свойства Controller можно использовать для определения причины прекращения работы планировщика: отсутствия рабочих элементов или прерывание запросом на приостановку.The State value of the Controller property can be used to determine whether the scheduler has no more work or was interrupted by a request to pause.

Метод RequestPause экземпляра WorkflowInstance.WorkflowInstanceControl, возвращенный свойством Controller, является единственным методом, который может быть вызван, если WorkflowInstance находится в состоянии «выполняется».The RequestPause method of the WorkflowInstance.WorkflowInstanceControl instance returned by the Controller property is the only method which can be called while the WorkflowInstance is in the Running state. При вызове других методов будет сформировано исключение InvalidOperationException. В соответствии с правилами изменения состояния WorkflowInstance общее определение состояний «выполняется» и «приостановлено» можно сформулировать следующим образом:All other methods will throw an InvalidOperationException if called.Given the rules for how WorkflowInstance transitions from one state to another, the public notion of Running and Paused can be defined as follows:

  • Выполнение — состояние между вызовом Run и следующим объектом WorkflowInstance. OnNotify *.Running - The state between a call to Run and the next WorkflowInstance.OnNotify*.

  • Приостановка — состояние между последним WorkflowInstance. OnNotify * и следующим вызовом метода Run.Paused - The state between the last WorkflowInstance.OnNotify* and the next call to Run.

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

WorkflowInstance(Activity) WorkflowInstance(Activity) WorkflowInstance(Activity) WorkflowInstance(Activity)

Инициализирует новый экземпляр класса WorkflowInstance с использованием указанного определения рабочего процесса.Initializes a new instance of the WorkflowInstance class with the specified workflow definition.

WorkflowInstance(Activity, WorkflowIdentity) WorkflowInstance(Activity, WorkflowIdentity) WorkflowInstance(Activity, WorkflowIdentity) WorkflowInstance(Activity, WorkflowIdentity)

Инициализирует новый экземпляр класса WorkflowInstance с указанным определением рабочего процесса и удостоверением определения.Initializes a new instance of the WorkflowInstance class with the specified workflow definition and definition identity.

Свойства

Controller Controller Controller Controller

Возвращает экземпляр WorkflowInstance.WorkflowInstanceControl для этого WorkflowInstance.Gets the WorkflowInstance.WorkflowInstanceControl instance for this WorkflowInstance.

DefinitionIdentity DefinitionIdentity DefinitionIdentity DefinitionIdentity

Получает или задает удостоверение определения WorkflowInstance.Gets or sets the definition identity of WorkflowInstance.

HostEnvironment HostEnvironment HostEnvironment HostEnvironment

Возвращает или задает корневую среду для аргументов и переменных экземпляра рабочего процесса.Gets or sets the root environment for the workflow instance's arguments and variables.

Id Id Id Id

Возвращает уникальный идентификатор экземпляра рабочего процесса.Gets the unique identifier for the workflow instance.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Возвращает значение, показывающее, был ли инициализирован экземпляр рабочего процесса.Gets a value that indicates whether the workflow instance has been initialized.

SupportsInstanceKeys SupportsInstanceKeys SupportsInstanceKeys SupportsInstanceKeys

Возвращает значение, указывающее, поддерживает ли узел сопоставление InstanceKeys с исполняемым экземпляром.Gets a value that indicates whether the host supports the association of InstanceKeys with a run-time instance.

SynchronizationContext SynchronizationContext SynchronizationContext SynchronizationContext

Возвращает или задает тип SynchronizationContext, используемый для планирования экземпляра рабочего процесса.Gets or sets the SynchronizationContext used for scheduling the workflow instance.

WorkflowDefinition WorkflowDefinition WorkflowDefinition WorkflowDefinition

Возвращает определение рабочего процесса для экземпляра рабочего процесса.Gets the workflow definition of the workflow instance.

Методы

BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Вызывается средой выполнения рабочего процесса для начала асинхронной отправки отложенных записей отслеживания участникам отслеживания.Called by the workflow runtime to begin sending pending tracking records to tracking participants asynchronously.

DisposeExtensions() DisposeExtensions() DisposeExtensions() DisposeExtensions()

Вызывает метод Dispose() для всех расширений, реализующих интерфейс IDisposable.Calls Dispose() on all extensions that implement IDisposable.

EndFlushTrackingRecords(IAsyncResult) EndFlushTrackingRecords(IAsyncResult) EndFlushTrackingRecords(IAsyncResult) EndFlushTrackingRecords(IAsyncResult)

Вызывается средой выполнения рабочего процесса для завершения операции отслеживания.Called by the workflow runtime to end the track operation.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
FlushTrackingRecords(TimeSpan) FlushTrackingRecords(TimeSpan) FlushTrackingRecords(TimeSpan) FlushTrackingRecords(TimeSpan)

Вызывается средой выполнения рабочего процесса для отправки отложенных записей отслеживания участникам отслеживания.Called by the workflow runtime to send pending tracking records to tracking participants.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Извлекает Список действий, которые блокируют обновление рабочий процесса.Retrieves the list of activity that is blocking the update of the workflow.

GetExtension<T>() GetExtension<T>() GetExtension<T>() GetExtension<T>()

Возвращает расширение указанного типа.Returns an extension of the specified type.

GetExtensions<T>() GetExtensions<T>() GetExtensions<T>() GetExtensions<T>()

Возвращает все расширения, найденные для указанного типа.Returns all extensions found for the specified type.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
Initialize(IDictionary<String,Object>, IList<Handle>) Initialize(IDictionary<String,Object>, IList<Handle>) Initialize(IDictionary<String,Object>, IList<Handle>) Initialize(IDictionary<String,Object>, IList<Handle>)

Вызывается узлом для инициализации экземпляра рабочего процесса со значениями аргументов и свойствами выполнения.Called by the host to initialize the workflow instance with the argument values and execution properties.

Initialize(Object) Initialize(Object) Initialize(Object) Initialize(Object)

Вызывается узлом для инициализации состояния среды выполнения экземпляра рабочего процесса.Called by the host to initialize the workflow instance with the workflow run-time state.

Initialize(Object, DynamicUpdateMap) Initialize(Object, DynamicUpdateMap) Initialize(Object, DynamicUpdateMap) Initialize(Object, DynamicUpdateMap)

Вызывается узлом для инициализации экземпляра рабочего процесса с состоянием среды выполнения рабочего процесса и обновления сопоставления.Called by the host to initialize the workflow instance with the workflow run-time state and update map.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Вызывает среду выполнения рабочего процесса для уведомления узла о том, что новые ключи экземпляра должны быть связаны с этим экземпляром.Called by the workflow runtime to notify the host that new instance keys should be associated with this instance.

OnBeginFlushTrackingRecords(AsyncCallback, Object) OnBeginFlushTrackingRecords(AsyncCallback, Object) OnBeginFlushTrackingRecords(AsyncCallback, Object) OnBeginFlushTrackingRecords(AsyncCallback, Object)

Асинхронный вызов, запрашивающий сохранение узлом отложенных записей отслеживания на диск для участников отслеживания.Asynchronous call to ask host to flush pending tracking records to tracking participants.

OnBeginPersist(AsyncCallback, Object) OnBeginPersist(AsyncCallback, Object) OnBeginPersist(AsyncCallback, Object) OnBeginPersist(AsyncCallback, Object)

Асинхронный вызов узла для сохранения рабочего процесса.Asynchronous call to ask the host to persist the workflow.

OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

Вызывается средой выполнения рабочего процесса для уведомления узла о начале операции возобновления закладки.Called by the workflow runtime to notify the host that a resume bookmark operation is beginning.

OnDisassociateKeys(ICollection<InstanceKey>) OnDisassociateKeys(ICollection<InstanceKey>) OnDisassociateKeys(ICollection<InstanceKey>) OnDisassociateKeys(ICollection<InstanceKey>)

Вызывает среду выполнения рабочего процесса для уведомления узла о том, что определенный набор ключей экземпляра больше не должен быть связан с этим экземпляром.Called by the workflow runtime to notify the host that a certain set of instance keys should no longer be associated with this instance.

OnEndAssociateKeys(IAsyncResult) OnEndAssociateKeys(IAsyncResult) OnEndAssociateKeys(IAsyncResult) OnEndAssociateKeys(IAsyncResult)

Вызывается средой выполнения рабочего процесса для уведомления узла о завершении операции связанных ключей.Called by the workflow runtime to notify the host that an associate keys operation is complete.

OnEndFlushTrackingRecords(IAsyncResult) OnEndFlushTrackingRecords(IAsyncResult) OnEndFlushTrackingRecords(IAsyncResult) OnEndFlushTrackingRecords(IAsyncResult)

Вызывается средой выполнения рабочего процесса для уведомления узла о завершении операции сохранения записей отслеживания на диск.Called by the workflow runtime to notify the host when the flush tracking records operation is complete.

OnEndPersist(IAsyncResult) OnEndPersist(IAsyncResult) OnEndPersist(IAsyncResult) OnEndPersist(IAsyncResult)

Вызывается средой выполнения рабочего процесса для уведомления узла о завершении операции сохранения.Called by the workflow runtime to notify the host that a persist operation is complete.

OnEndResumeBookmark(IAsyncResult) OnEndResumeBookmark(IAsyncResult) OnEndResumeBookmark(IAsyncResult) OnEndResumeBookmark(IAsyncResult)

Вызывается средой выполнения рабочего процесса для уведомления узла о завершении операции возобновления закладки.Called by the workflow runtime to notify the host that a resume bookmark operation is complete.

OnNotifyPaused() OnNotifyPaused() OnNotifyPaused() OnNotifyPaused()

Вызывается средой выполнения рабочего процесса для уведомления узла об изменении состояния экземпляра рабочего процесса с «выполняется» на «приостановлено».Called by the workflow runtime to notify the host that the workflow instance has transitioned from the running state to the paused state.

OnNotifyUnhandledException(Exception, Activity, String) OnNotifyUnhandledException(Exception, Activity, String) OnNotifyUnhandledException(Exception, Activity, String) OnNotifyUnhandledException(Exception, Activity, String)

Вызывается средой выполнения рабочего процесса для уведомления узла о возникновении необработанного исключения в экземпляре рабочего процесса.Called by the workflow runtime to notify the host an unhandled exception has occurred in the workflow instance.

OnRequestAbort(Exception) OnRequestAbort(Exception) OnRequestAbort(Exception) OnRequestAbort(Exception)

Вызывается средой выполнения рабочего процесса для уведомления узла о запросе операции прерывания для экземпляра рабочего процесса.Called by the workflow runtime to notify the host that an abort operation has been requested for the workflow instance.

RegisterExtensionManager(WorkflowInstanceExtensionManager) RegisterExtensionManager(WorkflowInstanceExtensionManager) RegisterExtensionManager(WorkflowInstanceExtensionManager) RegisterExtensionManager(WorkflowInstanceExtensionManager)

Вызывается узлом для регистрации указанного диспетчера расширений, проверки наличия всех необходимых расширений и инициализации коллекции используемых расширений.Called by the host to register the specified extension manager, validate that all required extensions are present, and to initialize the collection of extensions to be used.

ThrowIfReadOnly() ThrowIfReadOnly() ThrowIfReadOnly() ThrowIfReadOnly()

Вызывает исключение InvalidOperationException, если экземпляр рабочего процесса был инициализирован со свойством IsReadOnly.Throws an InvalidOperationException if the workflow instance has been initialized, as determined by IsReadOnly.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

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