TaskContinuationOptions Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa zachowanie zadania, które jest tworzone przy użyciu ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) metody lub ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) .
To wyliczenie obsługuje bitową kombinację jego wartości składowych.
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
- Dziedziczenie
- Atrybuty
Pola
AttachedToParent | 4 | Określa, że kontynuacja, jeśli jest zadaniem podrzędnym, jest dołączona do elementu nadrzędnego w hierarchii zadań. Kontynuacja może być zadaniem podrzędnym tylko wtedy, gdy jego przedzident jest również zadaniem podrzędnym. Domyślnie zadanie podrzędne (czyli zadanie wewnętrzne utworzone przez zadanie zewnętrzne) jest wykonywane niezależnie od jego nadrzędnego. Możesz użyć AttachedToParent opcji , aby zadania nadrzędne i podrzędne zostały zsynchronizowane. Należy pamiętać, że jeśli zadanie nadrzędne jest skonfigurowane z opcją DenyChildAttach , AttachedToParent opcja w zadaniu podrzędnym nie ma wpływu, a zadanie podrzędne zostanie wykonane jako odłączone zadanie podrzędne. Aby uzyskać więcej informacji, zobacz Dołączone i odłączone zadania podrzędne. |
DenyChildAttach | 8 | Określa, że każde zadanie podrzędne (czyli każde zagnieżdżone zadanie wewnętrzne utworzone przez tę kontynuację), które jest tworzone z opcją AttachedToParent i próbuje wykonać jako dołączone zadanie podrzędne nie będzie mogło dołączyć do zadania nadrzędnego i zostanie wykonane zamiast tego jako odłączone zadanie podrzędne. Aby uzyskać więcej informacji, zobacz Dołączone i odłączone zadania podrzędne. |
ExecuteSynchronously | 524288 | Określa, że zadanie kontynuacji powinno być wykonywane synchronicznie. Po określeniu tej opcji kontynuacja jest uruchamiana w tym samym wątku, który powoduje przejście zadania przedzibowego do stanu końcowego. Jeśli przedzident jest już ukończony po utworzeniu kontynuacji, kontynuacja zostanie uruchomiona w wątku, który tworzy kontynuację. Jeśli przedzident jest CancellationTokenSource usuwany w Ponieważ zadanie jest wykonywane synchronicznie, nie ma potrzeby wywoływania metody, takiej jak Wait() zapewnienie, że wątek wywołujący czeka na ukończenie zadania. |
HideScheduler | 16 | Określa, że zadania utworzone przez kontynuację przez wywoływanie metod, takich jak Run(Action) lub ContinueWith(Action<Task>) zobacz domyślny harmonogram (Default), a nie harmonogram, na którym ta kontynuacja jest uruchomiona jako bieżący harmonogram. |
LazyCancellation | 32 | W przypadku anulowania kontynuacji uniemożliwia ukończenie kontynuacji do momentu ukończenia przedzidentu. |
LongRunning | 2 | Określa, że kontynuacja będzie długotrwałą operacją z ziarnem kursu. Zawiera wskazówkę dotyczącą TaskScheduler tego, że nadsubskrypcja może być uzasadnione. |
None | 0 | Jeśli nie określono opcji kontynuacji, określa, że podczas wykonywania kontynuacji należy użyć domyślnego zachowania. Kontynuacja jest uruchamiana asynchronicznie, gdy zadanie przedzidentu zostanie ukończone, niezależnie od ostatecznej Status wartości właściwości antecedenta. Kontynuacja jest zadaniem podrzędnym, które jest tworzone jako odłączone zadanie zagnieżdżone. |
NotOnCanceled | 262144 | Określa, że zadanie kontynuacji nie powinno być zaplanowane, jeśli jego przedzident został anulowany. Przedzident jest anulowany, jeśli jego Status właściwość po zakończeniu to Canceled. Ta opcja jest nieprawidłowa w przypadku kontynuacji wielu zadań. |
NotOnFaulted | 131072 | Określa, że zadanie kontynuacji nie powinno być zaplanowane, jeśli jego przedzident zwrócił nieobsługiwany wyjątek. Przedzident zgłasza nieobsługiwany wyjątek, jeśli jego Status właściwość po zakończeniu to Faulted. Ta opcja jest nieprawidłowa w przypadku kontynuacji wielu zadań. |
NotOnRanToCompletion | 65536 | Określa, że zadanie kontynuacji nie powinno być zaplanowane, jeśli jego przedzident został uruchomiony do ukończenia. Przedzident jest uruchamiany do ukończenia, jeśli jego Status właściwość po zakończeniu to RanToCompletion. Ta opcja jest nieprawidłowa w przypadku kontynuacji wielu zadań. |
OnlyOnCanceled | 196608 | Określa, że kontynuacja powinna być zaplanowana tylko wtedy, gdy jego przedzident został anulowany. Przedzident jest anulowany, jeśli jego Status właściwość po zakończeniu to Canceled. Ta opcja jest nieprawidłowa w przypadku kontynuacji wielu zadań. |
OnlyOnFaulted | 327680 | Określa, że zadanie kontynuacji powinno być zaplanowane tylko wtedy, gdy jego przedzident zwrócił nieobsługiwany wyjątek. Przedzident zgłasza nieobsługiwany wyjątek, jeśli jego Status właściwość po zakończeniu to Faulted. Opcja OnlyOnFaulted gwarantuje, że Exception właściwość w antecedent nie Ta opcja jest nieprawidłowa w przypadku kontynuacji wielu zadań. |
OnlyOnRanToCompletion | 393216 | Określa, że kontynuacja powinna być zaplanowana tylko wtedy, gdy jego przedzident został uruchomiony do ukończenia. Przedzident jest uruchamiany do ukończenia, jeśli jego Status właściwość po zakończeniu to RanToCompletion. Ta opcja jest nieprawidłowa w przypadku kontynuacji wielu zadań. |
PreferFairness | 1 | Wskazówka do TaskScheduler zaplanowana zadania w kolejności, w której zostały zaplanowane, tak aby zaplanowane wcześniej zadania były uruchamiane szybciej, a zaplanowane później zadania będą bardziej prawdopodobne. |
RunContinuationsAsynchronously | 64 | Określa, że zadanie kontynuacji powinno być uruchamiane asynchronicznie. Ta opcja ma pierwszeństwo przed ExecuteSynchronously. |