TaskContinuationOptions Enumeráció

Definíció

Megadja a metódussal ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) létrehozott feladat viselkedésétContinueWith(Action<Task<TResult>>, TaskContinuationOptions).

Ez a felsorolás támogatja a tagértékek bitenkénti kombinációját.

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
Öröklődés
TaskContinuationOptions
Attribútumok

Mezők

Name Érték Description
None 0

Ha nincs megadva folytatási beállítás, meghatározza, hogy a folytatás végrehajtásakor az alapértelmezett viselkedést kell használni. A folytatás aszinkron módon fut, amikor az antecedent tevékenység befejeződik, függetlenül az előd végső Status tulajdonságértékétől. Ha a folytatás gyermekfeladat, akkor leválasztott beágyazott feladatként jön létre.

PreferFairness 1

Egy tipp a TaskScheduler tevékenységek ütemezéséhez az ütemezett sorrendben, így a korábban ütemezett tevékenységek nagyobb valószínűséggel futnak hamarabb, és a később ütemezett tevékenységek nagyobb valószínűséggel futnak később.

LongRunning 2

Azt adja meg, hogy a folytatás hosszú ideig futó, természetesen részletes művelet lesz. Utal arra, hogy a TaskScheduler túljelentkezés indokolt lehet.

AttachedToParent 4

Megadja, hogy a folytatás , ha gyermekfeladat, a tevékenységhierarchiában lévő szülőhöz legyen csatolva. A folytatás csak akkor lehet gyermekfeladat, ha előzménye szintén gyermekfeladat. Alapértelmezés szerint a gyermekfeladat (azaz egy külső tevékenység által létrehozott belső tevékenység) a szülőtől függetlenül hajtja végre. A beállítással AttachedToParent szinkronizálhatja a szülő- és gyermekfeladatokat.

Vegye figyelembe, hogy ha egy szülőfeladat ezzel a DenyChildAttach beállítással van konfigurálva, a AttachedToParent gyermekfeladatban lévő beállításnak nincs hatása, és a gyermekfeladat leválasztott gyermekfeladatként lesz végrehajtva.

További információ: Csatolt és leválasztott gyermekfeladatok.

DenyChildAttach 8

Megadja, hogy a lehetőséggel AttachedToParent létrehozott és csatolt gyermekfeladatként végrehajtandó gyermekfeladatok (vagyis a folytatás által létrehozott beágyazott belső tevékenységek) nem lesznek csatolhatók a szülőfeladathoz, és nem lesznek külön gyermekfeladatok. További információ: Csatolt és leválasztott gyermekfeladatok.

HideScheduler 16

Megadja, hogy a folytatás által létrehozott tevékenységek olyan metódusok meghívásával jönnek létre, mint például Run(Action)ContinueWith(Action<Task>) az alapértelmezett ütemező (Default) és nem az a ütemező, amelyen ez a folytatás fut aktuális ütemezőként.

LazyCancellation 32

A folytatás lemondása esetén megakadályozza a folytatás befejezését, amíg az előzmény be nem fejeződik.

RunContinuationsAsynchronously 64

Megadja, hogy a folytatási feladatot aszinkron módon kell futtatni. Ez a beállítás elsőbbséget élvez a beállítással szemben ExecuteSynchronously.

NotOnRanToCompletion 65536

Azt határozza meg, hogy a folytatási tevékenység ne legyen ütemezve, ha az előzménye befejeződött. Az előzmény akkor fut a befejezésig, ha a tulajdonsága Status a befejezéskor .RanToCompletion Ez a beállítás nem érvényes többfeladatos folytatásokra.

NotOnFaulted 131072

Azt határozza meg, hogy a folytatási tevékenység ne legyen ütemezve, ha az előzménye nem kezelt kivételt eredményezett. Az előzmény kezeletlen kivételt eredményez, ha a tulajdonsága Status a befejezés után a Faultedkövetkező lesz: . Ez a beállítás nem érvényes többfeladatos folytatásokra.

OnlyOnCanceled 196608

Azt határozza meg, hogy a folytatás csak akkor legyen ütemezve, ha az előzménye megszakadt. Az előzmény akkor lesz megszakítva, ha a tulajdonsága Status a befejezéskor meg van Canceledszakítva. Ez a beállítás nem érvényes többfeladatos folytatásokra.

NotOnCanceled 262144

Azt határozza meg, hogy a folytatási tevékenység ne legyen ütemezve, ha az előzményét megszakították. Az előzmény akkor lesz megszakítva, ha a tulajdonsága Status a befejezéskor meg van Canceledszakítva. Ez a beállítás nem érvényes többfeladatos folytatásokra.

OnlyOnFaulted 327680

Megadja, hogy a folytatási tevékenység csak akkor legyen ütemezve, ha az előzménye nem kezelt kivételt jelzett. Az előzmény kezeletlen kivételt eredményez, ha a tulajdonsága Status a befejezés után a Faultedkövetkező lesz: .

A OnlyOnFaulted beállítás garantálja, hogy az Exception előzmény tulajdonsága nem null. A tulajdonság használatával elkaphatja a kivételt, és megtekintheti, hogy melyik kivétel okozta a feladat hibáját. Ha nem fér hozzá a Exception tulajdonsághoz, a kivétel nem lesz kezelve. Emellett, ha egy megszakított vagy hibás tevékenység tulajdonságához próbál hozzáférni Result , a rendszer új kivételt fog kivenni.

Ez a beállítás nem érvényes többfeladatos folytatásokra.

OnlyOnRanToCompletion 393216

Azt határozza meg, hogy a folytatás csak akkor legyen ütemezve, ha az előzménye befejeződött. Az előzmény akkor fut a befejezésig, ha a tulajdonsága Status a befejezéskor .RanToCompletion Ez a beállítás nem érvényes többfeladatos folytatásokra.

ExecuteSynchronously 524288

Megadja, hogy a folytatási feladatot szinkron módon kell végrehajtani. Ha ez a beállítás meg van adva, a folytatás ugyanazon a szálon fut, amely miatt az előzményfeladat áttér a végleges állapotára. Ha az előzmény már befejeződött a folytatás létrehozásakor, a folytatás a folytatást létrehozó szálon fog futni. Ha az előzmény CancellationTokenSource egy finally blokkban (Finally Visual Basic) van elhelyezve, a finally blokkban folytatódik az ezzel a beállítással. Csak nagyon rövid ideig futó folytatásokat kell szinkron módon végrehajtani.

Mivel a feladat szinkron módon fut, nincs szükség olyan metódus meghívására, amely Wait() biztosítja, hogy a hívószál megvárja a feladat befejezését.

A következőre érvényes: