TaskContinuationOptions Enumeração

Definição

Especifica o comportamento de uma tarefa criada usando o método ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) ou ContinueWith(Action<Task<TResult>>, TaskContinuationOptions).

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

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
Herança
TaskContinuationOptions
Atributos

Campos

Nome Valor Description
None 0

Quando nenhuma opção de continuação é especificada, especifica que o comportamento padrão deve ser usado ao executar uma continuação. A continuação é executada de forma assíncrona quando a tarefa anterior é concluída, independentemente do valor final da propriedade do Status antecedente. Se a continuação for uma tarefa filho, ela será criada como uma tarefa aninhada desanexada.

PreferFairness 1

Uma dica para uma TaskScheduler tarefa de agendamento na ordem em que foram agendadas, para que as tarefas agendadas mais cedo sejam executadas mais cedo, e as tarefas agendadas posteriormente são mais propensas a serem executadas mais tarde.

LongRunning 2

Especifica que uma continuação será uma operação de longa execução, refinada em curso. Ele fornece uma dica para que a TaskScheduler sobrescrição possa ser justificada.

AttachedToParent 4

Especifica que a continuação, se for uma tarefa filho, será anexada a um pai na hierarquia de tarefas. A continuação só poderá ser uma tarefa filho se seu antecedente também for uma tarefa filho. Por padrão, uma tarefa filho (ou seja, uma tarefa interna criada por uma tarefa externa) é executada independentemente de seu pai. Você pode usar a opção AttachedToParent para que as tarefas pai e filho sejam sincronizadas.

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.

Para obter mais informações, consulte Tarefas filho anexadas e desanexadas.

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 tentativas de execução como uma tarefa filho anexada não será capaz de anexar à tarefa pai e, em vez disso, será executada como uma tarefa filho desanexada. Para obter mais informações, consulte Tarefas filho anexadas e desanexadas.

HideScheduler 16

Especifica que as tarefas criadas pela continuação chamando métodos como Run(Action) ou ContinueWith(Action<Task>) ver o agendador padrão (Default) em vez do agendador no qual essa continuação está sendo executada como o agendador atual.

LazyCancellation 32

No caso de cancelamento de continuação, impede a conclusão da continuação até que o antecedente seja concluído.

RunContinuationsAsynchronously 64

Especifica que a tarefa de continuação deve ser executada de forma assíncrona. Essa opção tem precedência sobre ExecuteSynchronously.

NotOnRanToCompletion 65536

Especifica que a tarefa de continuação não deve ser agendada se o antecedente tiver sido executado até a conclusão. Um antecedente será executado até a conclusão se sua Status propriedade após a conclusão for RanToCompletion. Essa opção não é válida para continuações de várias tarefas.

NotOnFaulted 131072

Especifica que a tarefa de continuação não deve ser agendada se seu antecedente tiver jogado uma exceção sem tratamento. Um antecedente gera uma exceção sem tratamento se sua Status propriedade após a conclusão for Faulted. Essa opção não é válida para continuações de várias tarefas.

OnlyOnCanceled 196608

Especifica que a continuação deve ser agendada somente se o antecedente tiver sido cancelado. Um antecedente será cancelado se sua Status propriedade após a conclusão for Canceled. Essa opção não é válida para continuações de várias tarefas.

NotOnCanceled 262144

Especifica que a tarefa de continuação não deve ser agendada se seu antecedente foi cancelado. Um antecedente será cancelado se sua Status propriedade após a conclusão for Canceled. Essa opção não é válida para continuações de várias tarefas.

OnlyOnFaulted 327680

Especifica que a tarefa de continuação deve ser agendada somente se seu antecedente tiver jogado uma exceção sem tratamento. Um antecedente gera uma exceção sem tratamento se sua Status propriedade após a conclusão for Faulted.

A OnlyOnFaulted opção garante que a Exception propriedade no antecedente não nullseja . Você pode usar essa propriedade para capturar a exceção e ver qual exceção causou falha na tarefa. Se você não acessar a Exception propriedade, a exceção será sem tratamento. Além disso, se você tentar acessar a Result propriedade de uma tarefa que foi cancelada ou falhou, uma nova exceção será lançada.

Essa opção não é válida para continuações de várias tarefas.

OnlyOnRanToCompletion 393216

Especifica que a continuação deve ser agendada somente se o antecedente tiver sido executado até a conclusão. Um antecedente será executado até a conclusão se sua Status propriedade após a conclusão for RanToCompletion. Essa opção não é válida para continuações de várias tarefas.

ExecuteSynchronously 524288

Especifica que a tarefa de continuação deve ser executada de forma síncrona. Com essa opção especificada, a continuação é executada no mesmo thread que faz com que a tarefa anterior faça a transição para seu estado final. Se o antecedente já estiver concluído quando a continuação for criada, a continuação será executada no thread que cria a continuação. Se o CancellationTokenSource do antecedente for descartado em um bloco finally (Finally em Visual Basic), uma continuação com essa opção será executada nesse bloco finally. Apenas continuações de execução muito curta devem ser executadas de forma síncrona.

Como a tarefa é executada de forma síncrona, não é necessário chamar um método, como Wait() garantir que o thread de chamada aguarde a conclusão da tarefa.

Aplica-se a