TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions Enum

Definición

Especifica el comportamiento de una tarea que se crea mediante el método ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) o 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 enumeración tiene el atributo FlagsAttribute, que permite una combinación bit a bit de sus valores de miembro.

public enum class TaskContinuationOptions
[System.Flags]
[System.Serializable]
public enum TaskContinuationOptions
type TaskContinuationOptions = 
Public Enum TaskContinuationOptions
Herencia
TaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptions
Atributos

Campos

AttachedToParent AttachedToParent AttachedToParent AttachedToParent 4

Especifica que la continuación, si es una tarea secundaria, se adjunta a un elemento primario en la jerarquía de tareas.Specifies that the continuation, if it is a child task, is attached to a parent in the task hierarchy. La continuación puede ser una tarea secundaria solo si su antecedente también es una tarea secundaria.The continuation can be a child task only if its antecedent is also a child task. De forma predeterminada, una tarea secundaria (es decir, una tarea interna creada por una tarea externa) se ejecuta de forma independiente de la tarea principal.By default, a child task (that is, an inner task created by an outer task) executes independently of its parent. La opción AttachedToParent permite sincronizar las tareas primarias y secundarias.You can use the AttachedToParent option so that the parent and child tasks are synchronized.

Tenga en cuenta que, si una tarea primaria se configura con la opción DenyChildAttach, la opción AttachedToParent no tiene ningún efecto en la tarea secundaria y ésta se ejecutará como una tarea secundaria desasociada.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 más información, consulte Attached and Detached Child Tasks (Tareas secundarias asociadas y desasociadas).For more information, see Attached and Detached Child Tasks.

DenyChildAttach DenyChildAttach DenyChildAttach DenyChildAttach 8

Especifica que cualquier tarea secundaria (es decir, toda tarea interna anidada creada por su continuación) que se cree con la opción AttachedToParent e intente ejecutarse como una tarea secundaria asociada no pueda adjuntar la tarea primaria y se ejecute como una tarea secundaria desasociada.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 más información, consulte Attached and Detached Child Tasks (Tareas secundarias asociadas y desasociadas).For more information, see Attached and Detached Child Tasks.

ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously 524288

Especifica que la tarea de continuación debe ejecutarse sincrónicamente.Specifies that the continuation task should be executed synchronously. Si se especifica esta opción, la continuación se ejecuta en el mismo subproceso que causa la transición de la tarea anterior a su estado final.With this option specified, the continuation runs on the same thread that causes the antecedent task to transition into its final state. Si la tarea anterior ya se completó al crear la continuación, esta se ejecutará en el subproceso que crea la continuación.If the antecedent is already complete when the continuation is created, the continuation will run on the thread that creates the continuation. Si se desecha CancellationTokenSource del antecedente en un bloque finally (Finally en Visual Basic), se ejecutará una continuación con esta opción en ese bloque 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. Solo deben ejecutarse sincrónicamente las continuaciones de duración muy breve.Only very short-running continuations should be executed synchronously.

Dado que la tarea se ejecuta de forma sincrónica, no es necesario llamar a un método como Wait() para asegurarse de que el subproceso llamado espera a que se complete la tarea.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 HideScheduler HideScheduler HideScheduler 16

Especifica que las tareas creadas por la continuación llamando a métodos como Run(Action) o ContinueWith(Action<Task>) vean el programador predeterminado (Default) en lugar del programador en el que esta continuación se ejecuta como el programador actual.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 LazyCancellation LazyCancellation LazyCancellation 32

En el caso de cancelación de continuación, evita la finalización de la continuación hasta que el antecedente se haya completado.In the case of continuation cancellation, prevents completion of the continuation until the antecedent has completed.

LongRunning LongRunning LongRunning LongRunning 2

Especifica que una continuación será una operación general de larga duración.Specifies that a continuation will be a long-running, course-grained operation. Proporciona una sugerencia al TaskScheduler de que se puede garantizar la sobresuscripción.It provides a hint to the TaskScheduler that oversubscription may be warranted.

None None None None 0

Cuando no se indica ninguna opción de continuación, especifica que se debe usar el comportamiento predeterminado cuando se ejecuta una continuación.When no continuation options are specified, specifies that default behavior should be used when executing a continuation. La continuación se ejecuta de forma asincrónica cuando se complete la tarea anterior, independientemente valor de propiedad de Status final del antecedente.The continuation runs asynchronously when the antecedent task completes, regardless of the antecedent's final Status property value. Si la continuación es una tarea secundaria, se crea como una tarea anidada desasociada.It the continuation is a child task, it is created as a detached nested task.

NotOnCanceled NotOnCanceled NotOnCanceled NotOnCanceled 262144

Especifica que no se programe la tarea de continuación si se cancela la tarea anterior.Specifies that the continuation task should not be scheduled if its antecedent was canceled. Un antecedente se cancela si su propiedad Status al finalizar es Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Esta opción no es válida para las continuaciones de varias tareas.This option is not valid for multi-task continuations.

NotOnFaulted NotOnFaulted NotOnFaulted NotOnFaulted 131072

Especifica que no se debe programar la tarea de continuación si su antecedente produjo una excepción no controlada.Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled exception. Un antecedente produce una excepción no controlada si su propiedad Status al finalizar es Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted. Esta opción no es válida para las continuaciones de varias tareas.This option is not valid for multi-task continuations.

NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion 65536

Especifica que no se debe programar la tarea de continuación si su antecedente se ejecuta completamente.Specifies that the continuation task should not be scheduled if its antecedent ran to completion. Un antecedente se ejecuta por completo si su propiedad Status al finalizar es RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Esta opción no es válida para las continuaciones de varias tareas.This option is not valid for multi-task continuations.

OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled 196608

Especifica que la continuación debe programarse únicamente si se cancela su antecedente.Specifies that the continuation should be scheduled only if its antecedent was canceled. Un antecedente se cancela si su propiedad Status al finalizar es Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Esta opción no es válida para las continuaciones de varias tareas.This option is not valid for multi-task continuations.

OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted 327680

Especifica que la tarea de continuación solo se debe programar si su antecedente produjo una excepción no controlada.Specifies that the continuation task should be scheduled only if its antecedent threw an unhandled exception. Un antecedente produce una excepción no controlada si su propiedad Status al finalizar es Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted.

La opción OnlyOnFaulted garantiza que la propiedad Exception del antecedente no es null.The OnlyOnFaulted option guarantees that the Exception property in the antecedent is not null. Puede usar esa propiedad para detectar la excepción y ver qué excepción provocó el error de la tarea.You can use that property to catch the exception and see which exception caused the task to fault. Si no tiene acceso a la propiedad Exception, no se controla la excepción.If you do not access the Exception property, the exception is unhandled. Asimismo, si intenta tener acceso a la propiedad Result de una tarea cancelada o con errores, se producirá una nueva excepción.Also, if you attempt to access the Result property of a task that has been canceled or has faulted, a new exception is thrown.

Esta opción no es válida para las continuaciones de varias tareas.This option is not valid for multi-task continuations.

OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion 393216

Especifica que la continuación debe programarse únicamente si su antecedente se ejecuta completamente.Specifies that the continuation should be scheduled only if its antecedent ran to completion. Un antecedente se ejecuta por completo si su propiedad Status al finalizar es RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Esta opción no es válida para las continuaciones de varias tareas.This option is not valid for multi-task continuations.

PreferFairness PreferFairness PreferFairness PreferFairness 1

Sugerencia a un objeto TaskScheduler para que programe las tareas en el orden en el que se programaron, de manera que haya más probabilidades de que las tareas programadas antes se ejecuten en primer lugar y las tareas programadas más tarde se ejecuten después.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 RunContinuationsAsynchronously RunContinuationsAsynchronously RunContinuationsAsynchronously 64

Especifica que la tarea de continuación debe ejecutarse asincrónicamente.Specifies that the continuation task should be run asynchronously. Esta opción tiene precedencia sobre ExecuteSynchronously.This option has precedence over ExecuteSynchronously.

Se aplica a