TaskContinuationOptions Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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í 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 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. |