TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions Enum

Definizione

Specifica il comportamento di un'attività creata tramite il metodo 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.

Questa enumerazione ha un attributo FlagsAttribute che consente una combinazione bit per bit dei valori del relativo membro.

public enum class TaskContinuationOptions
[System.Flags]
[System.Serializable]
public enum TaskContinuationOptions
type TaskContinuationOptions = 
Public Enum TaskContinuationOptions
Ereditarietà
TaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptions
Attributi

Campi

AttachedToParent AttachedToParent AttachedToParent AttachedToParent 4

Specifica che la continuazione, se è un'attività figlio, è connessa a un elemento padre della gerarchia delle attività.Specifies that the continuation, if it is a child task, is attached to a parent in the task hierarchy. La continuazione può essere un'attività figlio solo se anche la relativa attività precedente è un'attività figlio.The continuation can be a child task only if its antecedent is also a child task. Per impostazione predefinita, un'attività figlio, ovvero un'attività interna creata da un'attività esterna, viene eseguita indipendentemente dalla relativa attività padre.By default, a child task (that is, an inner task created by an outer task) executes independently of its parent. È possibile usare l'opzione AttachedToParent per mantenere sincronizzate le attività padre e figlio.You can use the AttachedToParent option so that the parent and child tasks are synchronized.

Si noti che se un'attività padre viene configurata con l'opzione DenyChildAttach, l'opzione AttachedToParent nell'attività figlio non avrà effetto e quest'ultima verrà eseguita come attività figlio disconnessa.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.

Per altre informazioni, vedere Attached and Detached Child Tasks (Attività figlio connesse e disconnesse).For more information, see Attached and Detached Child Tasks.

DenyChildAttach DenyChildAttach DenyChildAttach DenyChildAttach 8

Specifica che qualsiasi attività figlio (ovvero qualsiasi attività interna annidata creata da questa continuazione) che venga creata con l'opzione AttachedToParent e tenti l'esecuzione come attività figlio connessa non potrà collegarsi all'attività padre e verrà invece eseguita come attività figlio disconnessa.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. Per altre informazioni, vedere Attached and Detached Child Tasks (Attività figlio connesse e disconnesse).For more information, see Attached and Detached Child Tasks.

ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously 524288

Specifica che l'attività di continuazione deve essere eseguita in modo sincrono.Specifies that the continuation task should be executed synchronously. Se si specifica questa opzione, la continuazione viene eseguita nello stesso thread che comporta la transizione dell'attività precedente allo stato finale.With this option specified, the continuation runs on the same thread that causes the antecedent task to transition into its final state. Se quando la continuazione viene creata l'attività precedente è già completa, la continuazione verrà eseguita nel thread che crea la continuazione.If the antecedent is already complete when the continuation is created, the continuation will run on the thread that creates the continuation. Se CancellationTokenSource dell'attività precedente viene collocato in un blocco finally (Finally in Visual Basic), verrà eseguita una continuazione con questa opzione in tale blocco 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. Eseguire in modo sincrono soltanto le continuazioni che presentano un'esecuzione molto breve.Only very short-running continuations should be executed synchronously.

Dal momento che l'attività viene eseguita in modo asincrono, non è necessario chiamare un metodo come Wait() per garantire che il thread chiamante attenda il completamento dell'attività.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

Specifica le attività create dalla continuazione chiamando i metodi come Run(Action) o ContinueWith(Action<Task>). Vedere l'utilità di pianificazione predefinita (Default) anziché l'utilità di pianificazione in cui è in esecuzione la continuazione come utilità di pianificazione corrente.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

In caso di annullamento della continuazione, impedisce il completamento della continuazione finché l'attività precedente non è stata completata.In the case of continuation cancellation, prevents completion of the continuation until the antecedent has completed.

LongRunning LongRunning LongRunning LongRunning 2

Specifica che la continuazione sarà un'operazione a bassa precisione di lunga durata.Specifies that a continuation will be a long-running, course-grained operation. Fornisce a TaskScheduler un'indicazione in merito alla possibilità di dover ricorrere all'oversubscription.It provides a hint to the TaskScheduler that oversubscription may be warranted.

None None None None 0

Quando non viene specificata alcuna opzione di continuazione, specifica che deve essere usato un comportamento predefinito quando si esegue una continuazione.When no continuation options are specified, specifies that default behavior should be used when executing a continuation. La continuazione viene eseguita in modo asincrono al completamento dell'attività precedente, indipendentemente dal valore della proprietà Status finale dell'attività precedente.The continuation runs asynchronously when the antecedent task completes, regardless of the antecedent's final Status property value. Se la continuazione è un'attività figlio, viene creata come attività annidata disconnessa.It the continuation is a child task, it is created as a detached nested task.

NotOnCanceled NotOnCanceled NotOnCanceled NotOnCanceled 262144

Specifica che l'attività di continuazione non deve essere pianificata se l'attività precedente è stata annullata.Specifies that the continuation task should not be scheduled if its antecedent was canceled. Un'attività precedente viene annullata se la relativa proprietà Status al completamento è Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Questa opzione non è valida per le continuazioni multiattività.This option is not valid for multi-task continuations.

NotOnFaulted NotOnFaulted NotOnFaulted NotOnFaulted 131072

Specifica che l'attività di continuazione non deve essere pianificata se la relativa attività precedente ha generato un'eccezione non gestita.Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled exception. Un'attività precedente genera un'eccezione non gestita se la relativa proprietà Status al completamento è Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted. Questa opzione non è valida per le continuazioni multiattività.This option is not valid for multi-task continuations.

NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion 65536

Specifica che l'attività di continuazione non deve essere pianificata se l'esecuzione della relativa attività precedente è stata completata.Specifies that the continuation task should not be scheduled if its antecedent ran to completion. Un'attività precedente viene eseguita fino al completamento se la relativa proprietà Status al completamento è RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Questa opzione non è valida per le continuazioni multiattività.This option is not valid for multi-task continuations.

OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled 196608

Specifica che la continuazione deve essere pianificata solo se l'attività precedente è stata annullata.Specifies that the continuation should be scheduled only if its antecedent was canceled. Un'attività precedente viene annullata se la relativa proprietà Status al completamento è Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Questa opzione non è valida per le continuazioni multiattività.This option is not valid for multi-task continuations.

OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted 327680

Specifica che l'attività di continuazione deve essere pianificata solo se la relativa attività precedente ha generato un'eccezione non gestita.Specifies that the continuation task should be scheduled only if its antecedent threw an unhandled exception. Un'attività precedente genera un'eccezione non gestita se la relativa proprietà Status al completamento è Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted.

L'opzione OnlyOnFaulted garantisce che la proprietà Exception dell'attività precedente non sia null.The OnlyOnFaulted option guarantees that the Exception property in the antecedent is not null. È possibile usare tale proprietà per rilevare l'eccezione e determinare quale eccezione ha comportato errori nell'attività.You can use that property to catch the exception and see which exception caused the task to fault. Se non si accede alla proprietà Exception, l'eccezione non viene gestita.If you do not access the Exception property, the exception is unhandled. Inoltre, se si tenta di accedere alla proprietà Result di un'attività che è stata annullata o in cui si sono verificati errori, verrà generata una nuova eccezione.Also, if you attempt to access the Result property of a task that has been canceled or has faulted, a new exception is thrown.

Questa opzione non è valida per le continuazioni multiattività.This option is not valid for multi-task continuations.

OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion 393216

Specifica che la continuazione deve essere pianificata solo se l'esecuzione della relativa attività precedente è stata completata.Specifies that the continuation should be scheduled only if its antecedent ran to completion. Un'attività precedente viene eseguita fino al completamento se la relativa proprietà Status al completamento è RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Questa opzione non è valida per le continuazioni multiattività.This option is not valid for multi-task continuations.

PreferFairness PreferFairness PreferFairness PreferFairness 1

Indicazione fornita a un oggetto TaskScheduler affinché pianifichi un'attività nell'ordine in cui sono state pianificate, in modo che le attività pianificate prima abbiano più possibilità di essere eseguite prima delle attività pianificate in un secondo momento.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

Specifica che l'attività di continuazione deve essere eseguita in modo asincrono.Specifies that the continuation task should be run asynchronously. Questa opzione ha la precedenza rispetto a ExecuteSynchronously.This option has precedence over ExecuteSynchronously.

Si applica a