TaskContinuationOptions Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica il comportamento per un'attività creata utilizzando il metodo ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) o ContinueWith(Action<Task<TResult>>, TaskContinuationOptions).
Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.
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
- Ereditarietà
- Attributi
Campi
| Nome | Valore | Descrizione |
|---|---|---|
| None | 0 | Quando non vengono specificate opzioni di continuazione, specifica che il comportamento predefinito deve essere utilizzato durante l'esecuzione di una continuazione. La continuazione viene eseguita in modo asincrono al termine dell'attività precedente, indipendentemente dal valore finale della proprietà precedente Status . Se la continuazione è un'attività figlio, viene creata come attività annidata scollegata. |
| PreferFairness | 1 | Suggerimento per un'attività TaskScheduler di pianificazione nell'ordine in cui sono state pianificate, in modo che le attività pianificate prima vengano eseguite prima e le attività pianificate in un secondo momento saranno più probabili in un secondo momento. |
| LongRunning | 2 | Specifica che una continuazione sarà un'operazione con granularità prolungata. Fornisce un suggerimento al fatto che l'oversubscription TaskScheduler può essere garantito. |
| AttachedToParent | 4 | Specifica che la continuazione, se è un'attività figlio, è associata a un elemento padre nella gerarchia di attività. La continuazione può essere un'attività figlio solo se il relativo precedente è anche un'attività figlio. Per impostazione predefinita, un'attività figlio , ovvero un'attività interna creata da un'attività esterna, viene eseguita indipendentemente dal relativo elemento padre. È possibile usare l'opzione AttachedToParent in modo che le attività padre e figlio siano sincronizzate. Si noti che se un'attività padre è configurata con l'opzione DenyChildAttach , l'opzione AttachedToParent nell'attività figlio non ha alcun effetto e l'attività figlio verrà eseguita come attività figlio scollegata. Per ulteriori informazioni, vedere Attività Figlio Collegate e Scollegate. |
| DenyChildAttach | 8 | Specifica che qualsiasi attività figlio( ovvero qualsiasi attività interna annidata creata da questa continuazione) creata con l'opzione AttachedToParent e tenta di eseguire come attività figlio associata non sarà in grado di collegarsi all'attività padre e verrà eseguita invece come attività figlio scollegata. Per ulteriori informazioni, vedere Attività Figlio Collegate e Scollegate. |
| HideScheduler | 16 | Specifica che le attività create dalla continuazione chiamando metodi come Run(Action) o ContinueWith(Action<Task>) vedere l'utilità di pianificazione predefinita (Default) anziché l'utilità di pianificazione in cui questa continuazione è in esecuzione come utilità di pianificazione corrente. |
| LazyCancellation | 32 | In caso di annullamento della continuazione, impedisce il completamento della continuazione fino al completamento dell'attività precedente. |
| RunContinuationsAsynchronously | 64 | Specifica che l'attività di continuazione deve essere eseguita in modo asincrono. Questa opzione ha la precedenza su ExecuteSynchronously. |
| NotOnRanToCompletion | 65536 | Specifica che l'attività di continuazione non deve essere pianificata se l'attività precedente è stata eseguita fino al completamento. Un antecedent viene eseguito fino al completamento se la relativa Status proprietà al completamento è RanToCompletion. Questa opzione non è valida per le continuazioni a più attività. |
| NotOnFaulted | 131072 | Specifica che l'attività di continuazione non deve essere pianificata se l'attività precedente ha generato un'eccezione non gestita. Un antecedent genera un'eccezione non gestita se la relativa Status proprietà al completamento è Faulted. Questa opzione non è valida per le continuazioni a più attività. |
| OnlyOnCanceled | 196608 | Specifica che la continuazione deve essere pianificata solo se il relativo precedente è stato annullato. Un antecedent viene annullato se la relativa Status proprietà al completamento è Canceled. Questa opzione non è valida per le continuazioni a più attività. |
| NotOnCanceled | 262144 | Specifica che l'attività di continuazione non deve essere pianificata se l'attività precedente è stata annullata. Un antecedent viene annullato se la relativa Status proprietà al completamento è Canceled. Questa opzione non è valida per le continuazioni a più attività. |
| OnlyOnFaulted | 327680 | Specifica che l'attività di continuazione deve essere pianificata solo se l'attività precedente ha generato un'eccezione non gestita. Un antecedent genera un'eccezione non gestita se la relativa Status proprietà al completamento è Faulted. L'opzione OnlyOnFaulted garantisce che la Exception proprietà nell'oggetto precedente non Questa opzione non è valida per le continuazioni a più attività. |
| OnlyOnRanToCompletion | 393216 | Specifica che la continuazione deve essere pianificata solo se l'attività precedente è stata eseguita fino al completamento. Un antecedent viene eseguito fino al completamento se la relativa Status proprietà al completamento è RanToCompletion. Questa opzione non è valida per le continuazioni a più attività. |
| ExecuteSynchronously | 524288 | Specifica che l'attività di continuazione deve essere eseguita in modo sincrono. Con questa opzione specificata, la continuazione viene eseguita nello stesso thread che fa sì che l'attività precedente passi allo stato finale. Se l'attività precedente è già stata completata al momento della creazione della continuazione, la continuazione verrà eseguita nel thread che crea la continuazione. Se il Poiché l'attività viene eseguita in modo sincrono, non è necessario chiamare un metodo, Wait() ad esempio per assicurarsi che il thread chiamante attenda il completamento dell'attività. |