TaskContinuationOptions Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica o comportamento de uma tarefa criada com 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
- Atributos
Campos
AttachedToParent | 4 | Especifica que a continuação, se for uma tarefa filho, será anexada a um pai na hierarquia de tarefas. A continuação poderá ser uma tarefa filho somente se seu antecessor 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. Use 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 que tenta ser executada como uma tarefa filho anexada não poderá ser anexada à tarefa pai e será executada como uma tarefa filho desanexada. Para obter mais informações, consulte Tarefas filho anexadas e desanexadas. |
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 do antecessor faça a transição para o estado final. 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. Se o CancellationTokenSource do antecessor for descartado em um bloco 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. |
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. |
LazyCancellation | 32 | Em caso de cancelamento da continuação, impede a conclusão da continuação até que o antecessor seja concluído. |
LongRunning | 2 | Especifica que uma continuação será uma operação de execução longa e de alta granularidade. Fornece uma dica para o TaskScheduler de que podem ser necessárias assinaturas em excesso. |
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 do antecessor é concluída, independentemente do valor da propriedade Status final do antecessor. Se a continuação for uma tarefa filho, ela será criada como uma tarefa aninhada desanexada. |
NotOnCanceled | 262144 | Especifica que a tarefa de continuação não deve ser agendada se seu antecessor foi cancelado. Um antecessor será cancelado se a propriedade Status após a conclusão for Canceled. 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 antecessor gerou uma exceção sem tratamento. Um antecessor gerará uma exceção sem tratamento se a propriedade Status após a conclusão for Faulted. Essa opção não é válida para continuações de várias tarefas. |
NotOnRanToCompletion | 65536 | Especifica que a tarefa de continuação não deve ser agendada se seu antecessor foi executado até a conclusão. Um antecessor será executado até a conclusão se a propriedade Status após a conclusão for RanToCompletion. 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 seu antecessor foi cancelado. Um antecessor será cancelado se a propriedade Status 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 antecessor gerou uma exceção sem tratamento. Um antecessor gerará uma exceção sem tratamento se a propriedade Status após a conclusão for Faulted. A opção OnlyOnFaulted garante que a propriedade Exception no antecessor não é 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 seu antecessor foi executado até a conclusão. Um antecessor será executado até a conclusão se a propriedade Status após a conclusão for RanToCompletion. Essa opção não é válida para continuações de várias tarefas. |
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. |
RunContinuationsAsynchronously | 64 | Especifica que a tarefa de continuação deve ser executada de forma assíncrona. Essa opção tem precedência sobre ExecuteSynchronously. |