TaskContinuationOptions 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) メソッドまたは ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) メソッドを使用して作成されるタスクの動作を指定します。
この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。
public enum class TaskContinuationOptions
[System.Flags]
public enum TaskContinuationOptions
[System.Flags]
[System.Serializable]
public enum TaskContinuationOptions
[<System.Flags>]
type TaskContinuationOptions =
[<System.Flags>]
[<System.Serializable>]
type TaskContinuationOptions =
Public Enum TaskContinuationOptions
- 継承
- 属性
フィールド
AttachedToParent | 4 | 継続が子タスクの場合は、タスク階層内の親にアタッチするように指定します。 継続元も子タスクである場合にのみ、継続は子タスクになれます。 既定では、子タスク (外側のタスクによって作成される内側のタスク) は、親と独立して実行されます。 AttachedToParent オプションを使用して、親タスクと子タスクを同期させることもできます。 親タスクが DenyChildAttach オプションを指定して構成されている場合、子タスクの AttachedToParent オプションは無効で、その子タスクはデタッチされた子タスクとして実行されることに注意してください。 詳細については、「アタッチされた子タスクとデタッチされた子タスク」を参照してください。 |
DenyChildAttach | 8 | AttachedToParent オプションを指定して作成され、アタッチされた子タスクとして実行されることを試行する子タスク (この継続によって作成される入れ子になった内側のタスク) は、親タスクにアタッチされることはできないため、デタッチされた子タスクとして実行されます。 詳細については、「アタッチされた子タスクとデタッチされた子タスク」を参照してください。 |
ExecuteSynchronously | 524288 | 継続タスクを同期的に実行するように指定します。 このオプションを指定すると、継続は、前のタスクを最終状態に遷移させた同じスレッドで実行されます。 継続の作成時に継続元が既に完了している場合、継続はその継続を作成したスレッドで実行されます。 継続元の CancellationTokenSource が タスクは同期的に実行されるため、Wait() などのメソッドを呼び出して、呼び出しスレッドがタスクの完了を待機する必要はありません。 |
HideScheduler | 16 | 継続がメソッド (Run(Action) または ContinueWith(Action<Task>) など) を呼び出すことにより作成したタスクが、この継続の実行基盤であるスケジューラーではなく、既定のスケジューラー (Default) を現在のスケジューラーとして参照することを指定します。 |
LazyCancellation | 32 | 継続取り消しの場合は、継続元が完了するまで、継続が完了しないようにします。 |
LongRunning | 2 | 継続が、実行に時間のかかる、細分化されていない操作であることを示します。 これは、TaskScheduler に対し、オーバーサブスクリプションを許可してもよいことを示します。 |
None | 0 | 継続のオプションが指定されていない場合は、継続を実行するときに既定の動作を使用する必要があることを指定します。 継続元タスクが完了したら、継続元の最終的な Status プロパティ値に関係なく、継続を非同期的に実行します。 継続が子タスクの場合は、デタッチされた入れ子になったタスクとして作成されます。 |
NotOnCanceled | 262144 | 前のタスクが取り消された場合は継続タスクをスケジュールしないように指定します。 完了時に継続元の Status プロパティが Canceled である場合、継続元は取り消されます。 このオプションは、マルチタスクの継続タスクに対しては無効です。 |
NotOnFaulted | 131072 | 前のタスクで処理されない例外がスローされた場合は継続タスクをスケジュールしないように指定します。 完了時に継続元の Status プロパティが Faulted である場合、継続元はハンドルされない例外をスローします。 このオプションは、マルチタスクの継続タスクに対しては無効です。 |
NotOnRanToCompletion | 65536 | 前のタスクが完了まで実行された場合は、継続タスクをスケジュールしないように指定します。 完了時に継続元の Status プロパティが RanToCompletion である場合、継続元は完了まで実行されます。 このオプションは、マルチタスクの継続タスクに対しては無効です。 |
OnlyOnCanceled | 196608 | 継続元が取り消された場合にのみ継続をスケジュールするように指定します。 完了時に継続元の Status プロパティが Canceled である場合、継続元は取り消されます。 このオプションは、マルチタスクの継続タスクに対しては無効です。 |
OnlyOnFaulted | 327680 | 前のタスクで処理されない例外がスローされた場合にのみ継続タスクをスケジュールするように指定します。 完了時に継続元の Status プロパティが Faulted である場合、継続元はハンドルされない例外をスローします。 OnlyOnFaulted オプションを指定すると、継続元の Exception プロパティが このオプションは、マルチタスクの継続タスクに対しては無効です。 |
OnlyOnRanToCompletion | 393216 | 継続元が完了まで実行された場合にのみ継続をスケジュールするように指定します。 完了時に継続元の Status プロパティが RanToCompletion である場合、継続元は完了まで実行されます。 このオプションは、マルチタスクの継続タスクに対しては無効です。 |
PreferFairness | 1 | TaskScheduler に対するヒントはスケジュールされた順序でタスクをスケジュールするため、先にスケジュールされたタスクは先に実行される可能性が高く、後からスケジュールされたタスクは後で実行される可能性が高くなります。 |
RunContinuationsAsynchronously | 64 | 継続タスクを非同期的に実行するように指定します。 このオプションは ExecuteSynchronously より優先されます。 |