TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions Enum

定義

ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) メソッドまたは ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) メソッドを使用して作成されるタスクの動作を指定します。Specifies the behavior for a task that is created by using the ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) or ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) method.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class TaskContinuationOptions
[System.Flags]
[System.Serializable]
public enum TaskContinuationOptions
type TaskContinuationOptions = 
Public Enum TaskContinuationOptions
継承
TaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptions
属性

フィールド

AttachedToParent AttachedToParent AttachedToParent AttachedToParent 4

継続が子タスクの場合は、タスク階層内の親にアタッチするように指定します。Specifies that the continuation, if it is a child task, is attached to a parent in the task hierarchy. 継続元も子タスクである場合にのみ、継続は子タスクになれます。The continuation can be a child task only if its antecedent is also a child task. 既定では、子タスク (外側のタスクによって作成される内側のタスク) は、親と独立して実行されます。By default, a child task (that is, an inner task created by an outer task) executes independently of its parent. AttachedToParent オプションを使用して、親タスクと子タスクを同期させることもできます。You can use the AttachedToParent option so that the parent and child tasks are synchronized.

親タスクが DenyChildAttach オプションを指定して構成されている場合、子タスクの AttachedToParent オプションは無効で、その子タスクはデタッチされた子タスクとして実行されることに注意してください。Note that if a parent task is configured with the DenyChildAttach option, the AttachedToParent option in the child task has no effect, and the child task will execute as a detached child task.

詳細については、「アタッチされた子タスクとデタッチされた子タスク」を参照してください。For more information, see Attached and Detached Child Tasks.

DenyChildAttach DenyChildAttach DenyChildAttach DenyChildAttach 8

AttachedToParent オプションを指定して作成され、アタッチされた子タスクとして実行されることを試行する子タスク (この継続によって作成される入れ子になった内側のタスク) は、親タスクにアタッチされることはできないため、デタッチされた子タスクとして実行されます。Specifies that any child task (that is, any nested inner task created by this continuation) that is created with the AttachedToParent option and attempts to execute as an attached child task will not be able to attach to the parent task and will execute instead as a detached child task. 詳細については、「 Attached and Detached Child Tasks」を参照してください。For more information, see Attached and Detached Child Tasks.

ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously 524288

継続タスクを同期的に実行するように指定します。Specifies that the continuation task should be executed synchronously. このオプションを指定すると、継続は、前のタスクを最終状態に遷移させた同じスレッドで実行されます。With this option specified, the continuation runs on the same thread that causes the antecedent task to transition into its final state. 継続の作成時に継続元が既に完了している場合、継続はその継続を作成したスレッドで実行されます。If the antecedent is already complete when the continuation is created, the continuation will run on the thread that creates the continuation. 継続元の CancellationTokenSourcefinally ブロック (Visual Basic ではFinally ) で破棄された場合、このオプションを指定した継続がその finally ブロックで実行されます。If the antecedent's CancellationTokenSource is disposed in a finally block (Finally in Visual Basic), a continuation with this option will run in that finally block. 同期的に実行するのは、非常に短時間で完了する継続タスクのみでなければなりません。Only very short-running continuations should be executed synchronously.

タスクは同期的に実行されるため、Wait() などのメソッドを呼び出して、呼び出しスレッドがタスクの完了を待機する必要はありません。Because the task executes synchronously, there is no need to call a method such as Wait() to ensure that the calling thread waits for the task to complete.

HideScheduler HideScheduler HideScheduler HideScheduler 16

継続がメソッド (Run(Action) または ContinueWith(Action<Task>) など) を呼び出すことにより作成したタスクが、この継続の実行基盤であるスケジューラーではなく、既定のスケジューラー (Default) を現在のスケジューラーとして参照することを指定します。Specifies that tasks created by the continuation by calling methods such as Run(Action) or ContinueWith(Action<Task>) see the default scheduler (Default) rather than the scheduler on which this continuation is running as the current scheduler.

LazyCancellation LazyCancellation LazyCancellation LazyCancellation 32

継続取り消しの場合は、継続元が完了するまで、継続が完了しないようにします。In the case of continuation cancellation, prevents completion of the continuation until the antecedent has completed.

LongRunning LongRunning LongRunning LongRunning 2

継続が、実行に時間のかかる、細分化されていない操作であることを示します。Specifies that a continuation will be a long-running, course-grained operation. これは、 TaskScheduler に対し、オーバーサブスクリプションを許可してもよいことを示します。It provides a hint to the TaskScheduler that oversubscription may be warranted.

None None None None 0

継続のオプションが指定されていない場合は、継続を実行するときに既定の動作を使用する必要があることを指定します。When no continuation options are specified, specifies that default behavior should be used when executing a continuation. 継続元タスクが完了したら、継続元の最終的な Status プロパティ値に関係なく、継続を非同期的に実行します。The continuation runs asynchronously when the antecedent task completes, regardless of the antecedent's final Status property value. 継続が子タスクである場合は、デタッチされた入れ子のタスクとして作成されます。It the continuation is a child task, it is created as a detached nested task.

NotOnCanceled NotOnCanceled NotOnCanceled NotOnCanceled 262144

前のタスクが取り消された場合は継続タスクをスケジュールしないように指定します。Specifies that the continuation task should not be scheduled if its antecedent was canceled. 完了時に継続元の Status プロパティが Canceledである場合、継続元は取り消されます。An antecedent is canceled if its Status property upon completion is Canceled. このオプションは、マルチタスクの継続タスクに対しては無効です。This option is not valid for multi-task continuations.

NotOnFaulted NotOnFaulted NotOnFaulted NotOnFaulted 131072

前のタスクで処理されない例外がスローされた場合は継続タスクをスケジュールしないように指定します。Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled exception. 完了時に継続元の Status プロパティが Faulted である場合、継続元はハンドルされない例外をスローします。An antecedent throws an unhandled exception if its Status property upon completion is Faulted. このオプションは、マルチタスクの継続タスクに対しては無効です。This option is not valid for multi-task continuations.

NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion 65536

前のタスクが完了まで実行された場合は、継続タスクをスケジュールしないように指定します。Specifies that the continuation task should not be scheduled if its antecedent ran to completion. 完了時に継続元の Status プロパティが RanToCompletion である場合、継続元は完了まで実行されます。An antecedent runs to completion if its Status property upon completion is RanToCompletion. このオプションは、マルチタスクの継続タスクに対しては無効です。This option is not valid for multi-task continuations.

OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled 196608

継続元が取り消された場合にのみ継続をスケジュールするように指定します。Specifies that the continuation should be scheduled only if its antecedent was canceled. 完了時に継続元の Status プロパティが Canceled である場合、継続元は取り消されます。An antecedent is canceled if its Status property upon completion is Canceled. このオプションは、マルチタスクの継続タスクに対しては無効です。This option is not valid for multi-task continuations.

OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted 327680

前のタスクで処理されない例外がスローされた場合にのみ継続タスクをスケジュールするように指定します。Specifies that the continuation task should be scheduled only if its antecedent threw an unhandled exception. 完了時に継続元の Status プロパティが Faultedである場合、継続元はハンドルされない例外をスローします。An antecedent throws an unhandled exception if its Status property upon completion is Faulted.

OnlyOnFaulted オプションを指定すると、継続元の Exception プロパティが null でないことが保証されます。The OnlyOnFaulted option guarantees that the Exception property in the antecedent is not null. このプロパティを使用すると、例外をキャッチして、タスクの違反の原因となった例外を確認できます。You can use that property to catch the exception and see which exception caused the task to fault. Exception プロパティにアクセスしない場合、例外はハンドルされません。If you do not access the Exception property, the exception is unhandled. また、取り消されたタスクまたはエラーが発生したタスクの Result プロパティにアクセスしようとする場合も、新しい例外がスローされます。Also, if you attempt to access the Result property of a task that has been canceled or has faulted, a new exception is thrown.

このオプションは、マルチタスクの継続タスクに対しては無効です。This option is not valid for multi-task continuations.

OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion 393216

継続元が完了まで実行された場合にのみ継続をスケジュールするように指定します。Specifies that the continuation should be scheduled only if its antecedent ran to completion. 完了時に継続元の Status プロパティが RanToCompletion である場合、継続元は完了まで実行されます。An antecedent runs to completion if its Status property upon completion is RanToCompletion. このオプションは、マルチタスクの継続タスクに対しては無効です。This option is not valid for multi-task continuations.

PreferFairness PreferFairness PreferFairness PreferFairness 1

TaskScheduler に対するヒントはスケジュールされた順序でタスクをスケジュールするため、先にスケジュールされたタスクは先に実行される可能性が高く、後からスケジュールされたタスクは後で実行される可能性が高くなります。A hint to a TaskScheduler to schedule task in the order in which they were scheduled, so that tasks scheduled sooner are more likely to run sooner, and tasks scheduled later are more likely to run later.

RunContinuationsAsynchronously RunContinuationsAsynchronously RunContinuationsAsynchronously RunContinuationsAsynchronously 64

継続タスクを非同期的に実行するように指定します。Specifies that the continuation task should be run asynchronously. このオプションは ExecuteSynchronously より優先されます。This option has precedence over ExecuteSynchronously.

適用対象