TaskContinuationOptions 열거형

정의

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
상속
TaskContinuationOptions
특성

필드

AttachedToParent 4

연속 작업이 자식 작업인 경우 작업 계층 구조의 부모에 연결되도록 지정합니다. 연속 작업은 선행 작업도 자식 작업인 경우에만 자식 작업이 됩니다. 기본적으로 자식 작업(즉, 외부 작업이 만든 내부 작업)은 부모와 독립적으로 실행됩니다. AttachedToParent 옵션을 사용할 수 있어 부모와 자식 작업은 동기화됩니다.

부모 작업이 DenyChildAttach 옵션을 사용하여 구성된 경우 자식 작업의 AttachedToParent 옵션은 영향을 받지 않으며, 자식 작업은 분리된 자식 작업으로 실행됩니다.

자세한 내용은 연결된 자식 작업과 분리된 자식 작업을 참조하세요.

DenyChildAttach 8

AttachedToParent 옵션으로 만들어지고 연결된 자식 작업으로 실행하려는 모든 자식 작업(이 연속 작업으로 만들어진 모든 중첩 내부 작업)은 부모 작업에 연결할 수 없고 대신 분리된 자식 작업으로 실행되도록 지정합니다. 자세한 내용은 연결된 자식 작업과 분리된 자식 작업을 참조하세요.

ExecuteSynchronously 524288

연속 작업이 동기적으로 실행되도록 지정합니다. 이 옵션을 지정하면 연속 작업이 같은 스레드에서 실행되어 선행 작업이 최종 상태로 전환됩니다. 연속 작업이 만들어질 때 선행 작업이 이미 완료된 경우 연속 작업은 해당 작업을 만드는 스레드에서 실행됩니다. 선행 작업의 CancellationTokenSourcefinally 블록 (Visual Basic의 Finally)에서 삭제된 경우 이 옵션이 지정되면 연속 작업이 해당 finally 블록에서 계속 실행됩니다. 매우 단기로 실행되는 연속 작업만 동기적으로 실행됩니다.

작업은 동기적으로 실행되므로, 호출 스레드가 작업이 완료되기를 기다리도록 하기 위해 Wait()와 같은 메서드를 호출할 필요가 없습니다.

HideScheduler 16

Run(Action) 또는 ContinueWith(Action<Task>)와 같은 메서드를 호출함으로써 연속 작업에 의해 만들어진 작업이 이 연속 작업이 실행되는 스케줄러가 아닌 기본 스케줄러(Default)를 현재 스케줄러로 인식하도록 지정합니다.

LazyCancellation 32

연속 취소의 경우 선행이 완료되기 전에 연속이 완료되는 것을 방지합니다.

LongRunning 2

연속 작업이 장기 실행되는 성긴 작업이 되도록 지정합니다. 초과 구독을 보장할 수 있는 TaskScheduler에 대한 힌트를 제공합니다.

None 0

연속 작업 옵션이 지정되지 않은 경우, 연속 작업을 실행할 때 기본 동작을 사용하도록 지정합니다. 선행 작업의 최종 Status 속성 값에 관계없이 선행 작업이 완료되면 연속 작업이 비동기적으로 실행됩니다. 연속 작업이 자식 작업인 경우 분리된 중첩 작업으로 만들어집니다.

NotOnCanceled 262144

선행 작업이 취소된 경우 연속 작업이 예약되지 않도록 지정합니다. 완료 시 선행 작업의 Status 속성이 Canceled이면 작업이 취소됩니다. 이 옵션은 다중 작업 연속에 유효하지 않습니다.

NotOnFaulted 131072

선행 작업이 처리되지 않은 예외를 throw한 경우 연속 작업이 예약되지 않도록 지정합니다. 완료 시 선행 작업의 Status 속성이 Faulted이면 처리되지 않은 예외가 발생합니다. 이 옵션은 다중 작업 연속에 유효하지 않습니다.

NotOnRanToCompletion 65536

선행 작업의 실행이 완료된 경우 연속 작업이 예약되지 않도록 지정합니다. 완료 시 선행 작업의 Status 속성이 RanToCompletion이면 작업이 끝까지 실행됩니다. 이 옵션은 다중 작업 연속에 유효하지 않습니다.

OnlyOnCanceled 196608

선행 작업이 취소된 경우에만 연속 작업이 예약되도록 지정합니다. 완료 시 선행 작업의 Status 속성이 Canceled이면 작업이 취소됩니다. 이 옵션은 다중 작업 연속에 유효하지 않습니다.

OnlyOnFaulted 327680

선행 작업이 처리되지 않은 예외를 throw한 경우에만 연속 작업이 예약되도록 지정합니다. 완료 시 선행 작업의 Status 속성이 Faulted이면 처리되지 않은 예외가 발생합니다.

OnlyOnFaulted 옵션은 선행 작업의 Exception 속성이 null이 아니도록 보장합니다. 이 속성을 사용하여 예외를 catch하고 해당 작업에 오류를 발생시킨 예외를 확인할 수 있습니다. Exception 속성에 액세스하지 않는 경우에는 예외가 처리되지 않습니다. 또한 취소되었거나 오류가 발생한 작업의 Result 속성에 액세스하려고 하면 새 예외가 발생합니다.

이 옵션은 다중 작업 연속에 유효하지 않습니다.

OnlyOnRanToCompletion 393216

선행 작업의 실행이 완료된 경우에만 연속 작업이 예약되도록 지정합니다. 완료 시 선행 작업의 Status 속성이 RanToCompletion이면 작업이 끝까지 실행됩니다. 이 옵션은 다중 작업 연속에 유효하지 않습니다.

PreferFairness 1

더 일찍 예약된 작업을 먼저 실행하고 나중에 예약된 작업을 나중에 실행할 수 있도록 예약된 순서대로 작업을 예약하도록 TaskScheduler에 알려줍니다.

RunContinuationsAsynchronously 64

연속 작업이 비동기 방식으로 실행되도록 지정합니다. 이 옵션은 ExecuteSynchronously보다 우선합니다.

적용 대상