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 사용하여 둘을 구분할 수 있습니다.
호스트는 속성에서 반환된 인스턴스의 WorkflowInstance.WorkflowInstanceControl 메서드를 PauseWhenPersistable 호출 RequestPause 하여 실행 중에서 일시 중지됨 Controller 으로 변경을 요청할 수 있습니다. 이 요청은 호스트가 OnNotify* 또는 OnRequestAbort 일시 중지할 특정 호출의 상관 관계를 시도해서는 안 됨을 의미하는 특정 응답을 갖는 것으로 간주해서는 안 됩니다. 일시 중지 요청에 대한 응답으로 스케줄러에 보류 중인 작업 항목이 있는 동안 런타임이 일시 중지됨 및 호출 OnNotifyPaused 로 전환될 수 있습니다. State 속성 값을 Controller 사용하여 스케줄러에 더 이상 작업이 없는지 아니면 일시 중지 요청에 의해 중단되었는지 확인할 수 있습니다.
RequestPause 속성에서 반환된 WorkflowInstance.WorkflowInstanceControlController 인스턴스의 메서드는 실행 중 상태일 때 WorkflowInstance 호출할 수 있는 유일한 메서드입니다. 다른 모든 메서드는 if 호출을 InvalidOperationException throw합니다. 한 상태에서 다른 상태로 전환하는 방법에 WorkflowInstance 대한 규칙을 감안할 때 실행 중 및 일시 중지에 대한 공용 개념은 다음과 같이 정의될 수 있습니다.
실행 중 - 호출 Run 과 다음 WorkflowInstance.OnNotify*의 상태입니다.
일시 중지됨 - 마지막 WorkflowInstance.OnNotify*와 다음 호출 Run사이의 상태입니다.
생성자
| Name | Description |
|---|---|
| WorkflowInstance(Activity, WorkflowIdentity) |
지정된 워크플로 정의 및 정의 ID를 WorkflowInstance 사용하여 클래스의 새 인스턴스를 초기화합니다. |
| WorkflowInstance(Activity) |
지정된 워크플로 정의를 사용하여 클래스의 WorkflowInstance 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| Controller |
이 WorkflowInstance인스턴스를 WorkflowInstance.WorkflowInstanceControl 가져옵니다. |
| DefinitionIdentity |
의 정의 ID WorkflowInstance를 가져오거나 설정합니다. |
| HostEnvironment |
워크플로 인스턴스의 인수 및 변수에 대한 루트 환경을 가져오거나 설정합니다. |
| Id |
워크플로 인스턴스의 고유 식별자를 가져옵니다. |
| IsReadOnly |
워크플로 인스턴스가 초기화되었는지 여부를 나타내는 값을 가져옵니다. |
| SupportsInstanceKeys |
호스트가 런타임 인스턴스와의 연결을 InstanceKeys 지원하는지 여부를 나타내는 값을 가져옵니다. |
| SynchronizationContext |
워크플로 인스턴스를 SynchronizationContext 예약하는 데 사용되는 값을 가져오거나 설정합니다. |
| WorkflowDefinition |
워크플로 인스턴스의 워크플로 정의를 가져옵니다. |
메서드
| Name | Description |
|---|---|
| BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) |
워크플로 런타임에서 보류 중인 추적 레코드를 비동기적으로 추적 참가자에게 보내기 시작하도록 호출됩니다. |
| DisposeExtensions() |
를 구현IDisposable하는 모든 확장에 대해 호출 Dispose() 합니다. |
| 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결정된 대로 워크플로 인스턴스가 초기화된 경우 throw합니다. |
| ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |