TaskContinuationOptions Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica o comportamento para uma tarefa criada usando o ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) método ou ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) .
Esta enumeração suporta uma combinação bit-a-bit dos respetivos valores 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
| Name | Valor | Description |
|---|---|---|
| None | 0 | Quando não são especificadas opções de continuação, especifica que o comportamento padrão deve ser usado ao executar uma continuação. A continuação corre assíncrona quando a tarefa antecedente termina, independentemente do valor final Status da propriedade do antecedente. Se a continuação for uma tarefa filha, é criada como uma tarefa aninhada e separada. |
| PreferFairness | 1 | Uma dica para TaskScheduler agendar tarefas pela ordem em que foram agendadas, para que as tarefas agendadas mais cedo tenham maior probabilidade de serem executadas mais cedo, e as tarefas agendadas mais tarde tenham maior probabilidade de serem executadas mais tarde. |
| LongRunning | 2 | Especifica que uma continuação será uma operação de longa duração e com rumo definido. Dá uma pista de TaskScheduler que pode ser justificado o excesso de subscrição. |
| AttachedToParent | 4 | Especifica que a continuação, se for uma tarefa filha, está associada a um pai na hierarquia de tarefas. A continuação só pode ser uma tarefa filha se o seu antecedente também for uma tarefa filha. Por defeito, uma tarefa filha (ou seja, uma tarefa interna criada por uma tarefa externa) é executada independentemente do seu pai. Pode usar a AttachedToParent opção para que as tarefas pais e filhas estejam sincronizadas. Note que, se uma tarefa pai estiver configurada com a DenyChildAttach opção, a AttachedToParent opção na tarefa filha não tem efeito, e a tarefa filha será executada como uma tarefa filha destacada. Para obter mais informações, consulte Tarefas subordinadas anexadas e desanexadas. |
| DenyChildAttach | 8 | Especifica que qualquer tarefa filho (ou seja, qualquer tarefa interna aninhada criada por esta continuação) que seja criada com a AttachedToParent opção e tente executar como tarefa filha anexada não poderá ser anexada à tarefa pai e será executada em vez disso como uma tarefa filha destacada. Para obter mais informações, consulte Tarefas subordinadas anexadas e desanexadas. |
| HideScheduler | 16 | Especifica que as tarefas criadas pela continuação através de métodos como Run(Action) ou ContinueWith(Action<Task>) vejam o agendador padrão (Default) em vez do escalonador onde esta continuação está a correr como o agendador atual. |
| LazyCancellation | 32 | No caso do cancelamento de continuação, impede a conclusão da continuação até que o antecedente esteja concluído. |
| RunContinuationsAsynchronously | 64 | Especifica que a tarefa de continuação deve ser executada de forma assíncrona. Esta opção tem precedência sobre ExecuteSynchronously. |
| NotOnRanToCompletion | 65536 | Especifica que a tarefa de continuação não deve ser agendada se o seu antecedente tiver sido concluído. Um antecedente corre até à conclusão se a sua Status propriedade ao completar for RanToCompletion. Esta opção não é válida para continuações multitarefa. |
| NotOnFaulted | 131072 | Especifica que a tarefa de continuação não deve ser agendada se o seu antecessor tiver lançado uma exceção não tratada. Um antecedente lança uma exceção não tratada se a sua Status propriedade ao ser concluída for Faulted. Esta opção não é válida para continuações multitarefa. |
| OnlyOnCanceled | 196608 | Especifica que a continuação deve ser agendada apenas se o seu antecedente tiver sido cancelado. Um antecedente é anulado se a sua Status propriedade ao completar for Canceled. Esta opção não é válida para continuações multitarefa. |
| NotOnCanceled | 262144 | Especifica que a tarefa de continuação não deve ser agendada se o seu antecedente foi cancelado. Um antecedente é anulado se a sua Status propriedade ao completar for Canceled. Esta opção não é válida para continuações multitarefa. |
| OnlyOnFaulted | 327680 | Especifica que a tarefa de continuação deve ser agendada apenas se o seu antecessor tiver lançado uma exceção não tratada. Um antecedente lança uma exceção não tratada se a sua Status propriedade ao ser concluída for Faulted. A OnlyOnFaulted opção garante que a Exception propriedade no antecedente não Esta opção não é válida para continuações multitarefa. |
| OnlyOnRanToCompletion | 393216 | Especifica que a continuação deve ser agendada apenas se o seu antecessor tiver sido concluído. Um antecedente corre até à conclusão se a sua Status propriedade ao completar for RanToCompletion. Esta opção não é válida para continuações multitarefa. |
| ExecuteSynchronously | 524288 | Especifica que a tarefa de continuação deve ser executada de forma síncrona. Com esta opção especificada, a continuação corre no mesmo thread que faz a transição da tarefa antecedente para o seu estado final. Se o antecedente já estiver completo quando a continuação é criada, a continuação será executada no thread que cria a continuação. Se o CancellationTokenSource do antecedente for descartado num bloco Como a tarefa é executada de forma síncrona, não é necessário chamar um método para Wait() garantir que o thread que chama espera que a tarefa seja concluída. |