TaskContinuationOptions Výčet

Definice

Určuje chování úkolu vytvořeného pomocí ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) metody 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

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ým úkolem pouze v případě, že jeho tetecedent je také podřízený úkol. Ve výchozím nastavení se podřízený úkol (tj. vnitřní úkol vytvořený vnější úlohou) spouští nezávisle na nadřazenosti. Tuto možnost můžete použít AttachedToParent , aby se nadřazené a podřízené úkoly synchronizovaly.

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 najdete v tématu Připojené a odpojené podřízené úkoly.

DenyChildAttach 8

Určuje, že jakýkoli podřízený úkol (tj. jakýkoli vnořený vnitřní úkol vytvořený tímto pokračováním), který je vytvořen s AttachedToParent možností, a pokusí se provést jako připojený podřízený úkol, nebude moct připojit k nadřazené úloze a místo toho se spustí jako odpojený podřízený úkol. Další informace najdete v tématu Připojené a odpojené podřízené úkoly.

ExecuteSynchronously 524288

Určuje, že se má úloha pokračování spustit synchronně. Pokud je tato možnost zadaná, pokračování běží na stejném vlákně, které způsobí, že úloha s tecedentem přejde do konečného stavu. Pokud je již po vytvoření pokračování dokončeno, bude pokračování spuštěno ve vlákně, které vytvoří pokračování. Pokud je objekt antecedent CancellationTokenSource odstraněn v finally bloku (Finally v jazyce Visual Basic), bude pokračování s touto možností spuštěno v tomto finally bloku. Synchronně by se měla spustit pouze velmi krátká pokračování.

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

HideScheduler 16

Určuje, že úkoly vytvořené pokračováním voláním metod, jako jsou Run(Action) nebo ContinueWith(Action<Task>) zobrazit výchozí plánovač (Default) místo plánovače, na kterém je toto pokračování spuštěné 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čil tetecedent.

LongRunning 2

Určuje, že pokračování bude dlouhotrvající operace s kurzem. Poskytuje nápovědu TaskScheduler k tomu, že přeplatkování může být zaručeno.

None 0

Pokud nejsou zadány žádné možnosti pokračování, určuje, že při provádění pokračování by se mělo 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 antecedentu. Pokud je pokračování podřízeným úkolem, vytvoří se jako odpojený vnořený úkol.

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í s více úlohami.

NotOnFaulted 131072

Určuje, že úloha pokračování by neměla být naplánována, pokud její antecedent hodil 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í s více úlohami.

NotOnRanToCompletion 65536

Určuje, že úkol pokračování by neměl být naplánovaný, pokud se jeho tetecedent spustil k dokončení. Antecedent se spustí k dokončení, pokud je RanToCompletionjeho Status vlastnost po dokončení . Tato možnost není platná pro pokračování s více úlohami.

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 tetecedent. Antecedent je zrušen, pokud je jeho Status vlastnost po dokončení Canceled. Tato možnost není platná pro pokračování s více úlohami.

OnlyOnFaulted 327680

Určuje, že úloha pokračování by měla být naplánována pouze v případě, že jeho antecedent hodil 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 vlastnost v antecedent není null. Tuto vlastnost můžete použít k zachycení výjimky a zjistit, 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 došlo k chybě, vyvolá se nová výjimka.

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

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 je RanToCompletionjeho Status vlastnost po dokončení . Tato možnost není platná pro pokračování s více úlohami.

PreferFairness 1

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

RunContinuationsAsynchronously 64

Určuje, že se má úloha pokračování spouštět asynchronně. Tato možnost má přednost před ExecuteSynchronously.

Platí pro