TaskContinuationOptions Enumeração

Definição

Especifica o comportamento de uma tarefa criada com o método ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) ou 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.

Esta enumeração tem um atributo FlagsAttribute que permite uma combinação bit a bit dos valores membros dela.

public enum class TaskContinuationOptions
public enum TaskContinuationOptions
[System.Flags]
public enum TaskContinuationOptions
[System.Flags]
[System.Serializable]
public enum TaskContinuationOptions
type TaskContinuationOptions = 
[<System.Flags>]
type TaskContinuationOptions = 
[<System.Flags>]
[<System.Serializable>]
type TaskContinuationOptions = 
Public Enum TaskContinuationOptions
Herança
TaskContinuationOptions
Atributos

Campos

AttachedToParent 4

Especifica que a continuação, se for uma tarefa filho, será anexada a um pai na hierarquia de tarefas.Specifies that the continuation, if it is a child task, is attached to a parent in the task hierarchy. A continuação poderá ser uma tarefa filho somente se seu antecessor também for uma tarefa filho.The continuation can be a child task only if its antecedent is also a child task. Por padrão, uma tarefa filho (ou seja, uma tarefa interna criada por uma tarefa externa) é executada independentemente de seu pai.By default, a child task (that is, an inner task created by an outer task) executes independently of its parent. Use a opção AttachedToParent para que as tarefas pai e filho sejam sincronizadas.You can use the AttachedToParent option so that the parent and child tasks are synchronized.

Observe que, se uma tarefa pai estiver configurada com a opção DenyChildAttach, a opção AttachedToParent na tarefa filho não terá efeito, e a tarefa filho será executada como uma tarefa filho desanexada.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.

Para obter mais informações, consulte Tarefas filho anexadas e desanexadas.For more information, see Attached and Detached Child Tasks.

DenyChildAttach 8

Especifica que qualquer tarefa filho (ou seja, qualquer tarefa interna aninhada criada por essa continuação) criada com a opção AttachedToParent e que tenta ser executada como uma tarefa filho anexada não poderá ser anexada à tarefa pai e será executada como uma tarefa filho desanexada.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. Para obter mais informações, consulte Tarefas filho anexadas e desanexadas.For more information, see Attached and Detached Child Tasks.

ExecuteSynchronously 524288

Especifica que a tarefa de continuação deve ser executada de forma síncrona.Specifies that the continuation task should be executed synchronously. Com essa opção especificada, a continuação é executada no mesmo thread que faz com que a tarefa do antecessor faça a transição para o estado final.With this option specified, the continuation runs on the same thread that causes the antecedent task to transition into its final state. Se o antecessor já tiver sido concluído quando a continuação for criada, a continuação será executada no thread que cria a continuação.If the antecedent is already complete when the continuation is created, the continuation will run on the thread that creates the continuation. Se o CancellationTokenSource do antecessor for descartado em um bloco finally (Finally no Visual Basic), uma continuação com essa opção será executada nesse bloco 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. Somente continuações de execução muito curta devem ser executadas de forma síncrona.Only very short-running continuations should be executed synchronously.

Como a tarefa é executada de forma síncrona, não é necessário chamar um método como Wait() para garantir que o thread de chamada aguarda até que a tarefa seja concluída.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 16

Especifica que as tarefas criadas pela continuação com a chamada de métodos como Run(Action) ou ContinueWith(Action<Task>) observem o agendador padrão (Default) em vez do agendador no qual essa continuação está sendo executada como o agendador atual.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 32

Em caso de cancelamento da continuação, impede a conclusão da continuação até que o antecessor seja concluído.In the case of continuation cancellation, prevents completion of the continuation until the antecedent has completed.

LongRunning 2

Especifica que uma continuação será uma operação de execução longa e de alta granularidade.Specifies that a continuation will be a long-running, course-grained operation. Fornece uma dica para o TaskScheduler de que podem ser necessárias assinaturas em excesso.It provides a hint to the TaskScheduler that oversubscription may be warranted.

None 0

Quando nenhuma opção de continuação é especificada, especifica que o comportamento padrão deve ser usado ao executar uma continuação.When no continuation options are specified, specifies that default behavior should be used when executing a continuation. A continuação é executada de forma assíncrona quando a tarefa do antecessor é concluída, independentemente do valor da propriedade Status final do antecessor.The continuation runs asynchronously when the antecedent task completes, regardless of the antecedent's final Status property value. Se a continuação for uma tarefa filho, ela será criada como uma tarefa aninhada desanexada.It the continuation is a child task, it is created as a detached nested task.

NotOnCanceled 262144

Especifica que a tarefa de continuação não deve ser agendada se seu antecessor foi cancelado.Specifies that the continuation task should not be scheduled if its antecedent was canceled. Um antecessor será cancelado se a propriedade Status após a conclusão for Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Essa opção não é válida para continuações de várias tarefas.This option is not valid for multi-task continuations.

NotOnFaulted 131072

Especifica que a tarefa de continuação não deve ser agendada se seu antecessor gerou uma exceção sem tratamento.Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled exception. Um antecessor gerará uma exceção sem tratamento se a propriedade Status após a conclusão for Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted. Essa opção não é válida para continuações de várias tarefas.This option is not valid for multi-task continuations.

NotOnRanToCompletion 65536

Especifica que a tarefa de continuação não deve ser agendada se seu antecessor foi executado até a conclusão.Specifies that the continuation task should not be scheduled if its antecedent ran to completion. Um antecessor será executado até a conclusão se a propriedade Status após a conclusão for RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Essa opção não é válida para continuações de várias tarefas.This option is not valid for multi-task continuations.

OnlyOnCanceled 196608

Especifica que a continuação deve ser agendada somente se seu antecessor foi cancelado.Specifies that the continuation should be scheduled only if its antecedent was canceled. Um antecessor será cancelado se a propriedade Status após a conclusão for Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Essa opção não é válida para continuações de várias tarefas.This option is not valid for multi-task continuations.

OnlyOnFaulted 327680

Especifica que a tarefa de continuação deve ser agendada somente se seu antecessor gerou uma exceção sem tratamento.Specifies that the continuation task should be scheduled only if its antecedent threw an unhandled exception. Um antecessor gerará uma exceção sem tratamento se a propriedade Status após a conclusão for Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted.

A opção OnlyOnFaulted garante que a propriedade Exception no antecessor não é null.The OnlyOnFaulted option guarantees that the Exception property in the antecedent is not null. Use essa propriedade para capturar a exceção e ver qual exceção causou a falha na tarefa.You can use that property to catch the exception and see which exception caused the task to fault. Se você não acessar a propriedade Exception, a exceção não será tratada.If you do not access the Exception property, the exception is unhandled. Além disso, se você tentar acessar a propriedade Result de uma tarefa cancelada ou que apresentou falha, uma nova exceção será gerada.Also, if you attempt to access the Result property of a task that has been canceled or has faulted, a new exception is thrown.

Essa opção não é válida para continuações de várias tarefas.This option is not valid for multi-task continuations.

OnlyOnRanToCompletion 393216

Especifica que a continuação deve ser agendada somente se seu antecessor foi executado até a conclusão.Specifies that the continuation should be scheduled only if its antecedent ran to completion. Um antecessor será executado até a conclusão se a propriedade Status após a conclusão for RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Essa opção não é válida para continuações de várias tarefas.This option is not valid for multi-task continuations.

PreferFairness 1

Uma dica para um TaskScheduler para agendar a tarefa na ordem em que as tarefas foram agendadas, para que seja mais provável que as tarefas agendadas anteriormente sejam executadas antes e as tarefas agendadas posteriormente sejam executadas depois.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 64

Especifica que a tarefa de continuação deve ser executada de forma assíncrona.Specifies that the continuation task should be run asynchronously. Essa opção tem precedência sobre ExecuteSynchronously.This option has precedence over ExecuteSynchronously.

Aplica-se a