Share via


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 を同時に呼び出すと、InvalidOperationException がスローされます。

内部的には、WorkflowInstance は、Running と Paused の 2 つの状態を持ちます。 ランタイムの状態を Paused から Running に遷移させる唯一の方法は、Run を呼び出すことです。 ランタイムが Paused の間は、すべてのアクション (Pause を除く) の取得のみを行うことができます。 ランタイムは、次の状況のときに、自然に Paused になります。

  • ランタイムに致命的なエラーが発生しました。 ホストは OnRequestAbort (Paused への遷移は通知しません) を介してシグナルを受信し、次に、OnNotifyPaused を介して通知を受けます。

  • ワークフローの例外をキャッチできず、ルートがエスケープされました。 ホストは、OnNotifyUnhandledException メソッドを介して通知されます。

  • スケジューラは作業項目をすべて実行し、現在は Idle です。 ホストは、OnNotifyPaused メソッドを介して通知されます。 インスタンスがアイドル状態であるか、または完了したため、スケジューラは作業項目をすべて実行した可能性があることに注意してください。 State プロパティの Controller 値をその 2 つの区別に使用できます。

ホストは、RequestPause プロパティによって返される PauseWhenPersistable インスタンスの WorkflowInstance.WorkflowInstanceControl または Controller メソッドを呼び出すことによって、Running から Paused への変更を要求できます。 この要求は特定の応答を持つことは考慮されません。つまり、ホストは、OnNotify* または OnRequestAbort と、一時停止のための特定の呼び出しを関連付けません。 一時停止要求に対する応答として、スケジューラに保留中の作業項目がある間に、ランタイムが Paused 状態に遷移し、OnNotifyPaused を呼び出すことがあります。 State プロパティの Controller 値を使用して、スケジューラに他の作業があるかどうか、または一時停止要求によってスケジューラが中断されたかどうかを調べることができます。

RequestPause プロパティによって返された WorkflowInstance.WorkflowInstanceControl インスタンスの Controller メソッドは、WorkflowInstance が Running 状態のときに呼び出すことができる唯一のメソッドです。 他のすべてのメソッドは、呼び出されると InvalidOperationException をスローします。WorkflowInstance がある状態から別の状態へ遷移する方法のルールを考えると、Running および Paused の一般概念を次のように定義できます。

  • Running-の呼び出し 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()

ワークフロー インスタンスが Running 状態から Paused 状態に遷移したことをホストに通知するために、ワークフロー ランタイムが呼び出します。

OnNotifyUnhandledException(Exception, Activity, String)

未処理の例外がワークフロー インスタンスで発生したことをホストに通知するために、ワークフロー ランタイムが呼び出します。

OnRequestAbort(Exception)

ワークフロー インスタンスに対して中止操作が要求されたことをホストに通知するために、ワークフロー ランタイムが呼び出します。

RegisterExtensionManager(WorkflowInstanceExtensionManager)

指定された機能拡張マネージャーを登録し、必要なすべての拡張機能が存在することを検証して、使用される拡張機能のコレクションを初期化するために、ホストが呼び出します。

ThrowIfReadOnly()

ワークフロー インスタンスが初期化されている場合、InvalidOperationException によって決められたように、IsReadOnly をスローします。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象