TaskContinuationOptions Výčet

Definice

Určuje chování úlohy, která je vytvořena pomocí metody ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) nebo 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.

Tento výčet má atribut FlagsAttribute, který umožňuje bitové kombinace hodnot členů.

public enum class TaskContinuationOptions
[System.Flags]
[System.Serializable]
public enum TaskContinuationOptions
type TaskContinuationOptions = 
Public Enum TaskContinuationOptions
Dědičnost
TaskContinuationOptions
Atributy

Pole

AttachedToParent 4

Určuje, že pokračování, pokud se jedná o podřízenou úlohu, je připojeno k nadřazené položce v hierarchii úloh.Specifies that the continuation, if it is a child task, is attached to a parent in the task hierarchy. Pokračování může být podřízená úloha pouze v případě, že její předchůdce je také podřízenou úlohou.The continuation can be a child task only if its antecedent is also a child task. Ve výchozím nastavení se podřízená úloha (to znamená, že vnitřní úloha vytvořená vnějším úkolem) spouští nezávisle na své nadřazené položce.By default, a child task (that is, an inner task created by an outer task) executes independently of its parent. K synchronizaci nadřazených a podřízených úloh můžete použít možnost AttachedToParent.You can use the AttachedToParent option so that the parent and child tasks are synchronized.

Všimněte si, že pokud je nadřazená úloha nakonfigurovaná s možností DenyChildAttach, nemá možnost AttachedToParent v podřízené úloze žádný účinek a podřízená úloha se spustí jako odpojená podřízená úloha.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.

Další informace najdete v tématu připojené a odpojené podřízené úlohy.For more information, see Attached and Detached Child Tasks.

DenyChildAttach 8

Určuje, že všechny podřízené úlohy (tj. všechny vnořené vnitřní úlohy vytvořené tímto pokračováním) vytvořené pomocí možnosti AttachedToParent a pokusy o spuštění jako připojená podřízená úloha se nebudou moci připojit k nadřazené úloze a místo toho se spustí jako odpojená podřízená úloha.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. Další informace najdete v tématu připojené a odpojené podřízené úlohy.For more information, see Attached and Detached Child Tasks.

ExecuteSynchronously 524288

Určuje, že úloha pokračování by měla být provedena synchronně.Specifies that the continuation task should be executed synchronously. Je-li tato možnost zadána, pokračování bude spuštěno ve stejném vlákně, které způsobí přechod předchozí úlohy do konečného stavu.With this option specified, the continuation runs on the same thread that causes the antecedent task to transition into its final state. Pokud je předchůdce již dokončen při vytvoření pokračování, pokračování bude spuštěno ve vlákně, které vytvoří pokračování.If the antecedent is already complete when the continuation is created, the continuation will run on the thread that creates the continuation. Pokud je CancellationTokenSource předchůdce zlikvidován v bloku finally (Finally v Visual Basic), pokračování s touto možností se spustí v tomto finally bloku.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. Synchronně by se měly provádět jenom s velmi krátkými probíhajícími pokračováními.Only very short-running continuations should be executed synchronously.

Vzhledem k tomu, že úloha se spouští synchronně, není nutné volat metodu, jako je například Wait(), aby bylo zajištěno, že volající vlákno čeká na dokončení úlohy.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 16

Určuje, že úlohy vytvořené pokračováním voláním metod, jako je například Run(Action) nebo ContinueWith(Action<Task>), se místo plánovače, na kterém je spuštěno toto pokračování jako aktuální Plánovač, zobrazí výchozí Plánovač (Default).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 32

V případě zrušení pokračování zabrání dokončení pokračování až do dokončení předchůdce.In the case of continuation cancellation, prevents completion of the continuation until the antecedent has completed.

LongRunning 2

Určuje, že pokračování bude dlouhotrvající operace s průběžnými kurzy.Specifies that a continuation will be a long-running, course-grained operation. Poskytuje nápovědu pro TaskScheduler, že by mohlo být zaručené předplatné.It provides a hint to the TaskScheduler that oversubscription may be warranted.

None 0

Pokud nejsou zadány žádné možnosti pokračování, určuje, zda má být při provádění pokračování použito výchozí chování.When no continuation options are specified, specifies that default behavior should be used when executing a continuation. Pokračování se spouští asynchronně po dokončení předchozí úlohy, bez ohledu na hodnotu vlastnosti konečné Status předchůdce.The continuation runs asynchronously when the antecedent task completes, regardless of the antecedent's final Status property value. Pokračování je podřízená úloha, je vytvořena jako odpojená vnořená úloha.It the continuation is a child task, it is created as a detached nested task.

NotOnCanceled 262144

Určuje, že úkol pokračování by neměl být naplánován, pokud byl jeho předchůdce zrušen.Specifies that the continuation task should not be scheduled if its antecedent was canceled. Předchůdce je zrušen, pokud je jeho vlastnost Status po dokončení Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Tato možnost není platná pro pokračování ve více úlohách.This option is not valid for multi-task continuations.

NotOnFaulted 131072

Určuje, že pokračování úlohy by nemělo být naplánováno, pokud jeho předchůdce vyvolal neošetřenou výjimku.Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled exception. Předchůdce vyvolá neošetřenou výjimku, pokud je jeho vlastnost Status po dokončení Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted. Tato možnost není platná pro pokračování ve více úlohách.This option is not valid for multi-task continuations.

NotOnRanToCompletion 65536

Určuje, že pokračování úlohy by nemělo být naplánováno, pokud se její předchůdce úspěšně dokončil.Specifies that the continuation task should not be scheduled if its antecedent ran to completion. Předchozí spuštění bude dokončeno, pokud je jeho vlastnost Status po dokončení RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Tato možnost není platná pro pokračování ve více úlohách.This option is not valid for multi-task continuations.

OnlyOnCanceled 196608

Určuje, že pokračování má být naplánováno pouze v případě, že byl jeho předchůdce zrušen.Specifies that the continuation should be scheduled only if its antecedent was canceled. Předchůdce je zrušen, pokud je jeho vlastnost Status po dokončení Canceled.An antecedent is canceled if its Status property upon completion is Canceled. Tato možnost není platná pro pokračování ve více úlohách.This option is not valid for multi-task continuations.

OnlyOnFaulted 327680

Určuje, že úloha pokračování by měla být naplánována pouze v případě, že její předchůdce vyvolala neošetřenou výjimku.Specifies that the continuation task should be scheduled only if its antecedent threw an unhandled exception. Předchůdce vyvolá neošetřenou výjimku, pokud je jeho vlastnost Status po dokončení Faulted.An antecedent throws an unhandled exception if its Status property upon completion is Faulted.

Možnost OnlyOnFaulted garantuje, že vlastnost Exception v předchůdci není null.The OnlyOnFaulted option guarantees that the Exception property in the antecedent is not null. Tuto vlastnost můžete použít k zachycení výjimky a zjištění, která výjimka způsobila selhání úlohy.You can use that property to catch the exception and see which exception caused the task to fault. Pokud nezískáte přístup k vlastnosti Exception, výjimka je Neošetřená.If you do not access the Exception property, the exception is unhandled. Také pokud se pokusíte o přístup k vlastnosti Result úlohy, která byla zrušena nebo došlo k chybě, je vyvolána nová výjimka.Also, if you attempt to access the Result property of a task that has been canceled or has faulted, a new exception is thrown.

Tato možnost není platná pro pokračování ve více úlohách.This option is not valid for multi-task continuations.

OnlyOnRanToCompletion 393216

Určuje, že pokračování má být naplánováno pouze v případě, že byl jeho předchůdce dokončen.Specifies that the continuation should be scheduled only if its antecedent ran to completion. Předchozí spuštění bude dokončeno, pokud je jeho vlastnost Status po dokončení RanToCompletion.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Tato možnost není platná pro pokračování ve více úlohách.This option is not valid for multi-task continuations.

PreferFairness 1

Pomocný parametr TaskScheduler k naplánování úlohy v pořadí, v jakém byly naplánovány, aby byly úlohy naplánované dřív pravděpodobnější, že budou spouštěny dříve, a pozdější úlohy, které jsou později naplánovány, budou pravděpodobnější.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 64

Určuje, že úloha pokračování by měla běžet asynchronně.Specifies that the continuation task should be run asynchronously. Tato možnost má přednost před ExecuteSynchronously.This option has precedence over ExecuteSynchronously.

Platí pro