WorkflowInstance 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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.WorkflowInstanceControl의 WorkflowInstance 인스턴스를 가져옵니다. |
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) |