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
- 継承
- 属性
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| None | 0 | 継続オプションが指定されていない場合は、継続の実行時に既定の動作を使用することを指定します。 継続元の最終的な Status プロパティ値に関係なく、継続元タスクが完了すると、継続が非同期的に実行されます。 継続タスクが子タスクの場合は、デタッチされた入れ子になったタスクとして作成されます。 |
| PreferFairness | 1 | スケジュールされた順序でタスクをスケジュールするための TaskScheduler のヒント。スケジュールされたタスクの実行が早くなり、後でスケジュールされたタスクが後で実行される可能性が高くなります。 |
| LongRunning | 2 | 継続が実行時間の長いコースグレイン操作であることを指定します。 オーバーサブスクリプションが保証される可能性があることを TaskScheduler に示します。 |
| AttachedToParent | 4 | 継続が子タスクの場合は、タスク階層内の親にアタッチされるように指定します。 継続元が子タスクでもある場合にのみ、継続タスクを子タスクにすることができます。 既定では、子タスク (つまり、外部タスクによって作成された内部タスク) は、親とは別に実行されます。 AttachedToParent オプションを使用して、親タスクと子タスクを同期させることができます。 親タスクが DenyChildAttach オプションで構成されている場合、子タスクの AttachedToParent オプションは無効になり、子タスクはデタッチされた子タスクとして実行されることに注意してください。 詳細については、「アタッチされた子タスクとデタッチされた子タスク」を参照してください。 |
| DenyChildAttach | 8 | AttachedToParent オプションを使用して作成され、アタッチされた子タスクとして実行しようとする子タスク (つまり、この継続によって作成された入れ子になった内部タスク) が親タスクにアタッチできず、代わりにデタッチされた子タスクとして実行されることを指定します。 詳細については、「アタッチされた子タスクとデタッチされた子タスク」を参照してください。 |
| HideScheduler | 16 | Run(Action)やContinueWith(Action<Task>)などのメソッドを呼び出して継続によって作成されたタスクに、この継続が現在のスケジューラとして実行されているスケジューラではなく、既定のスケジューラ (Default) が表示されるように指定します。 |
| LazyCancellation | 32 | 継続キャンセルの場合、継続元が完了するまで継続の完了を防ぎます。 |
| RunContinuationsAsynchronously | 64 | 継続タスクを非同期的に実行することを指定します。 このオプションは、 ExecuteSynchronouslyよりも優先されます。 |
| NotOnRanToCompletion | 65536 | 継続元が完了まで実行された場合に継続タスクをスケジュールしないことを指定します。 継続元は、完了時に Status プロパティが RanToCompletionされると、完了まで実行されます。 このオプションは、複数タスクの継続には無効です。 |
| NotOnFaulted | 131072 | 継続元が未処理の例外をスローした場合に継続タスクをスケジュールしないことを指定します。 完了時に Status プロパティが Faulted場合、継続元はハンドルされない例外をスローします。 このオプションは、複数タスクの継続には無効です。 |
| OnlyOnCanceled | 196608 | 継続元が取り消された場合にのみ継続をスケジュールするように指定します。 完了時に Status プロパティが Canceledされると、継続元は取り消されます。 このオプションは、複数タスクの継続には無効です。 |
| NotOnCanceled | 262144 | 継続元が取り消された場合に継続タスクをスケジュールしないことを指定します。 完了時に Status プロパティが Canceledされると、継続元は取り消されます。 このオプションは、複数タスクの継続には無効です。 |
| OnlyOnFaulted | 327680 | 継続タスクが未処理の例外をスローした場合にのみ、継続タスクをスケジュールするように指定します。 完了時に Status プロパティが Faulted場合、継続元はハンドルされない例外をスローします。
OnlyOnFaulted オプションは、継続元のExceptionプロパティが このオプションは、複数タスクの継続には無効です。 |
| OnlyOnRanToCompletion | 393216 | 継続元が完了まで実行された場合にのみ、継続をスケジュールするように指定します。 継続元は、完了時に Status プロパティが RanToCompletionされると、完了まで実行されます。 このオプションは、複数タスクの継続には無効です。 |
| ExecuteSynchronously | 524288 | 継続タスクを同期的に実行することを指定します。 このオプションを指定すると、継続元タスクが最終的な状態に遷移するのと同じスレッドで継続が実行されます。 継続の作成時に継続元が既に完了している場合、継続は継続を作成するスレッドで実行されます。 継続元の CancellationTokenSource が タスクは同期的に実行されるため、呼び出し元のスレッドがタスクの完了を確実に待機するために、 Wait() などのメソッドを呼び出す必要はありません。 |