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 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
- 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 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 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. |