TaskContinuationOptions Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- 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 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 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. |