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

선행 작업이 처리되지 않은 예외를 throw한 경우 연속 작업이 예약되지 않도록 지정합니다.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

선행 작업이 처리되지 않은 예외를 throw한 경우에만 연속 작업이 예약되도록 지정합니다.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. 이 속성을 사용하여 예외를 catch하고 해당 작업에 오류를 발생시킨 예외를 확인할 수 있습니다.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.

적용 대상