TaskContinuationOptions Enum

Definitie

Hiermee geeft u het gedrag op voor een taak die wordt gemaakt met behulp van de ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) of ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) methode.

Deze opsomming ondersteunt een bitsgewijze combinatie van de waarden van de leden.

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
Overname
TaskContinuationOptions
Kenmerken

Velden

Name Waarde Description
None 0

Wanneer er geen vervolgopties zijn opgegeven, geeft u aan dat standaardgedrag moet worden gebruikt bij het uitvoeren van een vervolg. De voortzetting wordt asynchroon uitgevoerd wanneer de antecedent-taak is voltooid, ongeacht de uiteindelijke Status eigenschapswaarde van de antecedent. Als de voortzetting een onderliggende taak is, wordt deze gemaakt als een losgekoppelde geneste taak.

PreferFairness 1

Een hint voor het plannen van taken TaskScheduler in de volgorde waarin ze zijn gepland, zodat taken die eerder zijn gepland sneller worden uitgevoerd, en taken die later worden gepland, later vaker worden uitgevoerd.

LongRunning 2

Hiermee geeft u op dat een vervolg een langlopende, cursusgerichte bewerking zal zijn. Het biedt een hint voor de TaskScheduler oversubscriptie die kan worden gerechtvaardigd.

AttachedToParent 4

Hiermee geeft u op dat de voortzetting, als het een onderliggende taak is, is gekoppeld aan een bovenliggend item in de taakhiërarchie. De voortzetting kan alleen een onderliggende taak zijn als de onderliggende taak ook een onderliggende taak is. Standaard wordt een onderliggende taak (een binnenste taak die door een buitenste taak is gemaakt) onafhankelijk van het bovenliggende taak uitgevoerd. U kunt de AttachedToParent optie gebruiken zodat de bovenliggende en onderliggende taken worden gesynchroniseerd.

Als een bovenliggende taak is geconfigureerd met de DenyChildAttach optie, heeft de AttachedToParent optie in de onderliggende taak geen effect en wordt de onderliggende taak uitgevoerd als een losgekoppelde onderliggende taak.

Zie Gekoppelde en losgekoppelde onderliggende taken voor meer informatie.

DenyChildAttach 8

Hiermee geeft u op dat een onderliggende taak (dat wil gezegd, een geneste binnentaak die door deze voortzetting is gemaakt) die is gemaakt met de AttachedToParent optie en probeert uit te voeren als een gekoppelde onderliggende taak niet kan worden gekoppeld aan de bovenliggende taak en wordt in plaats daarvan uitgevoerd als een losgekoppelde onderliggende taak. Zie Gekoppelde en losgekoppelde onderliggende taken voor meer informatie.

HideScheduler 16

Hiermee geeft u op dat taken die zijn gemaakt door de voortzetting door methoden aan te roepen, zoals Run(Action) of ContinueWith(Action<Task>) de standaardplanner (Default) te zien in plaats van de planner waarop deze voortzetting wordt uitgevoerd als de huidige planner.

LazyCancellation 32

In het geval van vervolgannulering voorkomt u de voltooiing van de voortzetting totdat de antecedent is voltooid.

RunContinuationsAsynchronously 64

Hiermee geeft u op dat de vervolgtaak asynchroon moet worden uitgevoerd. Deze optie heeft voorrang op ExecuteSynchronously.

NotOnRanToCompletion 65536

Hiermee geeft u op dat de vervolgtaak niet moet worden gepland als de antecedent is voltooid. Een antecedent wordt uitgevoerd tot voltooiing als de Status eigenschap na voltooiing is RanToCompletion. Deze optie is niet geldig voor vervolgbewerkingen met meerdere taken.

NotOnFaulted 131072

Hiermee geeft u op dat de vervolgtaak niet moet worden gepland als de antecedent een onverwerkte uitzondering heeft veroorzaakt. Een antecedent genereert een onverwerkte uitzondering als de eigenschap na Status voltooiing is Faulted. Deze optie is niet geldig voor vervolgbewerkingen met meerdere taken.

OnlyOnCanceled 196608

Hiermee geeft u op dat de voortzetting alleen moet worden gepland als de antecedent is geannuleerd. Een antecedent wordt geannuleerd als de Status eigenschap na voltooiing is Canceled. Deze optie is niet geldig voor vervolgbewerkingen met meerdere taken.

NotOnCanceled 262144

Hiermee geeft u op dat de vervolgtaak niet moet worden gepland als de antecedent is geannuleerd. Een antecedent wordt geannuleerd als de Status eigenschap na voltooiing is Canceled. Deze optie is niet geldig voor vervolgbewerkingen met meerdere taken.

OnlyOnFaulted 327680

Hiermee geeft u op dat de vervolgtaak alleen moet worden gepland als de antecedent een onverwerkte uitzondering heeft veroorzaakt. Een antecedent genereert een onverwerkte uitzondering als de eigenschap na Status voltooiing is Faulted.

De OnlyOnFaulted optie garandeert dat de Exception eigenschap in de antecedent niet nullis. U kunt deze eigenschap gebruiken om de uitzondering te ondervangen en te zien welke uitzondering de taak heeft veroorzaakt. Als u geen toegang hebt tot de Exception eigenschap, wordt de uitzondering niet verwerkt. Als u probeert toegang te krijgen tot de Result eigenschap van een taak die is geannuleerd of waarvoor een fout is opgetreden, wordt er een nieuwe uitzondering gegenereerd.

Deze optie is niet geldig voor vervolgbewerkingen met meerdere taken.

OnlyOnRanToCompletion 393216

Hiermee geeft u op dat de voortzetting alleen moet worden gepland als de antecedent werd voltooid. Een antecedent wordt uitgevoerd tot voltooiing als de Status eigenschap na voltooiing is RanToCompletion. Deze optie is niet geldig voor vervolgbewerkingen met meerdere taken.

ExecuteSynchronously 524288

Hiermee geeft u op dat de vervolgtaak synchroon moet worden uitgevoerd. Als deze optie is opgegeven, wordt de voortzetting uitgevoerd op dezelfde thread die ervoor zorgt dat de antecedent-taak wordt overgestapt naar de uiteindelijke status. Als de antecedent al is voltooid wanneer de voortzetting wordt gemaakt, wordt de voortzetting uitgevoerd op de thread waarmee de voortzetting wordt gemaakt. Als de CancellationTokenSource van de antecedent wordt verwijderd in een finally blok (Finally in Visual Basic), wordt een vervolg met deze optie uitgevoerd in dat finally blok. Alleen zeer kortlopende vervolgen moeten synchroon worden uitgevoerd.

Omdat de taak synchroon wordt uitgevoerd, hoeft u geen methode aan te roepen, bijvoorbeeld Wait() om ervoor te zorgen dat de aanroepende thread wacht totdat de taak is voltooid.

Van toepassing op