TaskContinuationOptions Výčet

Definice

Určuje chování úlohy vytvořené pomocí ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) nebo ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) metody.

Tento výčet podporuje bitové kombinace hodnot jeho členů.

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
Dědičnost
TaskContinuationOptions
Atributy

Pole

Name Hodnota Description
None 0

Pokud nejsou zadány žádné možnosti pokračování, určuje, že při provádění pokračování se má použít výchozí chování. Pokračování se spustí asynchronně, když se dokončí úloha s tecedentem bez ohledu na konečnou Status hodnotu vlastnosti antecedent. Pokud je pokračování podřízeným úkolem, vytvoří se jako odpojený vnořený úkol.

PreferFairness 1

Nápovědu TaskScheduler k naplánování úkolu v pořadí, v jakém byly naplánovány, aby se úkoly naplánované dříve pravděpodobně spustily dříve a úkoly naplánované později budou pravděpodobně později pravděpodobně spuštěny později.

LongRunning 2

Určuje, že pokračování bude dlouhotrvající operace odstupňovaná podle kurzu. Poskytuje nápovědu TaskScheduler k tomu, že může být zaručeno přesouzení.

AttachedToParent 4

Určuje, že pokračování, pokud se jedná o podřízený úkol, je připojen k nadřazené sadě v hierarchii úkolů. Pokračování může být podřízený úkol pouze v případě, že jeho tecedent je také podřízený úkol. Ve výchozím nastavení se podřízený úkol (tj. vnitřní úkol vytvořený vnějším úkolem) spouští nezávisle na nadřazené úloze. Tuto možnost můžete použít AttachedToParent , aby se synchronizovaly nadřazené a podřízené úkoly.

Všimněte si, že pokud je nadřazený úkol nakonfigurován s DenyChildAttach možností, AttachedToParent možnost v podřízené úloze nemá žádný vliv a podřízený úkol se spustí jako odpojený podřízený úkol.

Další informace naleznete v tématu Připojené a odpojené podřízené úkoly.

DenyChildAttach 8

Určuje, že všechny podřízené úkoly (tj. všechny vnořené vnitřní úkoly vytvořené tímto pokračováním) vytvořené s AttachedToParent možností a pokusy o provedení jako připojený podřízený úkol nebudou moci připojit k nadřazené úloze a místo toho se spustí jako odpojený podřízený úkol. Další informace naleznete v tématu Připojené a odpojené podřízené úkoly.

HideScheduler 16

Určuje, že úlohy vytvořené pokračováním voláním metod, jako Run(Action) jsou nebo ContinueWith(Action<Task>) zobrazit výchozí plánovač (Default) místo plánovače, na kterém je pokračování spuštěno jako aktuální plánovač.

LazyCancellation 32

V případě zrušení pokračování zabrání dokončení pokračování, dokud se nedokončí tecedent.

RunContinuationsAsynchronously 64

Určuje, že úloha pokračování by měla být spuštěna asynchronně. Tato možnost má přednost před ExecuteSynchronously.

NotOnRanToCompletion 65536

Určuje, že úloha pokračování by neměla být naplánována, pokud jeho tecedent běžel na dokončení. Antecedent se spustí k dokončení, pokud jeho Status vlastnost po dokončení je RanToCompletion. Tato možnost není platná pro pokračování více úloh.

NotOnFaulted 131072

Určuje, že úloha pokračování by neměla být naplánována, pokud její tecedent vyvolal neošetřenou výjimku. Antecedent vyvolá neošetřenou výjimku, pokud je jeho Status vlastnost po dokončení Faulted. Tato možnost není platná pro pokračování více úloh.

OnlyOnCanceled 196608

Určuje, že pokračování by mělo být naplánováno pouze v případě, že byla zrušena jeho tecedent. Antecedent je zrušen, pokud je jeho Status vlastnost po dokončení Canceled. Tato možnost není platná pro pokračování více úloh.

NotOnCanceled 262144

Určuje, že úloha pokračování by neměla být naplánována, pokud byla zrušena jeho tecedent. Antecedent je zrušen, pokud je jeho Status vlastnost po dokončení Canceled. Tato možnost není platná pro pokračování více úloh.

OnlyOnFaulted 327680

Určuje, že úloha pokračování by měla být naplánována pouze v případě, že její tecedent vyvolal neošetřenou výjimku. Antecedent vyvolá neošetřenou výjimku, pokud je jeho Status vlastnost po dokončení Faulted.

Možnost OnlyOnFaulted zaručuje, že Exception nemovitost v tecedentu není null. Tuto vlastnost můžete použít k zachycení výjimky a zjištění, která výjimka způsobila chybu úkolu. Pokud k vlastnosti nepřistupujete Exception , je výjimka neošetřená. Pokud se také pokusíte získat přístup k Result vlastnosti úlohy, která byla zrušena nebo je chybná, vyvolá se nová výjimka.

Tato možnost není platná pro pokračování více úloh.

OnlyOnRanToCompletion 393216

Určuje, že pokračování by mělo být naplánováno pouze v případě, že jeho tetecedent běžel na dokončení. Antecedent se spustí k dokončení, pokud jeho Status vlastnost po dokončení je RanToCompletion. Tato možnost není platná pro pokračování více úloh.

ExecuteSynchronously 524288

Určuje, že se má úloha pokračování spustit synchronně. Pokud je tato možnost zadaná, pokračování se spustí ve stejném vlákně, které způsobí, že úloha s tecedentem přejde do konečného stavu. Pokud již je antecedent dokončen při vytvoření pokračování, pokračování se spustí ve vlákně, které vytvoří pokračování. Pokud je CancellationTokenSource objektu antecedent uvolněn v bloku finally (Finally v Visual Basic), spustí se pokračování s touto možností v tomto bloku finally. Synchronně by se měly spouštět pouze velmi krátká pokračování.

Vzhledem k tomu, že se úloha provádí synchronně, není nutné volat metodu, jako Wait() je například zajistit, aby volající vlákno čekalo na dokončení úlohy.

Platí pro