다음을 통해 공유


WorkflowInstance 클래스

정의

WorkflowInstance는 워크플로 프로그램 실행을 위한 인스턴스별 경량 런타임입니다. 새 워크플로 인스턴스를 만들도록 생성하거나 기존 인스턴스 상태에서 생성할 수 있습니다. WorkflowInstance.WorkflowInstanceControl이 노출하는 API는 상위 수준의 작업을 구현할 수 있는 최소 런타임 컨트롤 집합입니다. 이 API 집합은 전체 범위의 런타임 기능을 나타냅니다. WorkflowInstance는 추상 클래스이며 동기화, 지속성, 추적 및 확장명과 같은 호스트 기능을 제공하기 위해 호스트의 추상 메서드 구현을 사용합니다.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
상속
WorkflowInstance
파생

설명

WorkflowInstance 는 단일 스레드 이며 호스트가 모든 액세스를 동기화 한다고 가정 합니다. 여러 Api를 동시에 호출 하려고 하면이 throw 됩니다 InvalidOperationException .

내부적으로에는 WorkflowInstance 두 가지 상태 (실행 중 및 일시 중지 됨)가 있습니다. 런타임이 일시 중지 됨에서 실행 중으로 전환 되도록 하는 유일한 방법은를 호출 하는 것입니다 Run . 일시 중지를 제외한 모든 작업은 런타임이 일시 중지 된 동안에만 수행할 수 있습니다. 다음과 같은 상황에서 런타임이 자연스럽 게 일시 중지 됩니다.

  • 런타임에 심각한 오류가 발생 했습니다. 호스트는를 통해 신호를 OnRequestAbort 받고 (일시 중지 됨으로 전환 신호를 보내지 않음)를 통해 알림을 받습니다 OnNotifyPaused .

  • 워크플로의 예외를 catch 하지 않으며 루트를 이스케이프 했습니다. 메서드를 통해 호스트에 알림이 제공 됩니다 OnNotifyUnhandledException .

  • 스케줄러에 작업 항목이 부족 하 여 현재 Idle 입니다. 메서드를 통해 호스트에 알림이 제공 됩니다 OnNotifyPaused . 인스턴스가 유휴 상태 이거나 인스턴스가 완료 되었으므로 스케줄러에서 작업 항목을 모두 실행할 수 없습니다. State속성의 값을 Controller 사용 하 여 두 값을 구분할 수 있습니다.

호스트는 RequestPause PauseWhenPersistable WorkflowInstance.WorkflowInstanceControl 속성에서 반환 된 인스턴스의 또는 메서드를 호출 하 여 실행 중에서 일시 중지로의 변경을 요청할 수 있습니다 Controller . 이 요청은 호스트가 OnNotify * 또는 특정 호출을 일시 중지 하는 것을 시도 하지 않아야 함을 의미 하는 특정 응답이 있는 것으로 간주 해서는 안 됩니다 OnRequestAbort . 일시 중지 요청에 대 한 응답으로, 런타임이 일시 중지 된 상태로 전환 되 고 OnNotifyPaused 스케줄러에 보류 중인 작업 항목이 있는 동안가 호출 될 수 있습니다. State속성의 값을 Controller 사용 하 여 스케줄러가 더 이상 작업을 수행 하지 않거나 일시 중지 요청에 의해 중단 되었는지 여부를 확인할 수 있습니다.

RequestPause속성이 반환 하는 인스턴스의 메서드는가 WorkflowInstance.WorkflowInstanceControl Controller WorkflowInstance 실행 중인 상태에서 호출 될 수 있는 유일한 메서드입니다. 다른 모든 메서드는 호출 된 InvalidOperationException 경우을 throw 합니다. 한 상태에서 다른 상태로 전환 하는 방법에 대 한 규칙을 고려 하 여 WorkflowInstance 실행 중 및 일시 중지의 공용 개념은 다음과 같이 정의할 수 있습니다.

  • 실행 중-에 대 Run 한 호출과 다음 WorkflowInstance. OnNotify * 사이에 있는 상태입니다.

  • 일시 중지 됨-마지막 WorkflowInstance. OnNotify *와에 대 한 다음 호출 사이의 상태 Run 입니다.

생성자

WorkflowInstance(Activity)

지정한 워크플로 정의를 사용하여 WorkflowInstance 클래스의 새 인스턴스를 초기화합니다.

WorkflowInstance(Activity, WorkflowIdentity)

지정된 워크플로 정의 및 정의 ID를 사용하여 WorkflowInstance 클래스의 새 인스턴스를 초기화합니다.

속성

Controller

WorkflowInstance.WorkflowInstanceControlWorkflowInstance 인스턴스를 가져옵니다.

DefinitionIdentity

WorkflowInstance의 정의 ID를 가져오거나 설정합니다.

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을 throw합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상