TaskContinuationOptions Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan perilaku untuk tugas yang dibuat dengan menggunakan metode ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) atau ContinueWith(Action<Task<TResult>>, TaskContinuationOptions).
Enumerasi ini mendukung kombinasi bitwise dari nilai yang termasuk di dalamnya.
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
- Warisan
- Atribut
Bidang
| Nama | Nilai | Deskripsi |
|---|---|---|
| None | 0 | Ketika tidak ada opsi kelanjutan yang ditentukan, menentukan bahwa perilaku default harus digunakan saat menjalankan kelanjutan. Kelanjutan berjalan secara asinkron ketika tugas antecedent selesai, terlepas dari nilai properti akhir Status antecedent. Jika kelanjutannya adalah tugas anak, tugas tersebut dibuat sebagai tugas berlapis yang dilepaskan. |
| PreferFairness | 1 | Petunjuk untuk TaskScheduler menjadwalkan tugas dalam urutan dijadwalkan, sehingga tugas yang dijadwalkan lebih cepat lebih mungkin berjalan lebih cepat, dan tugas yang dijadwalkan nanti lebih mungkin dijalankan nanti. |
| LongRunning | 2 | Menentukan bahwa kelanjutan akan menjadi operasi yang berjalan lama dan bersangkutan. Ini memberikan petunjuk bahwa TaskScheduler oversubscription dapat dijadikan jaminan. |
| AttachedToParent | 4 | Menentukan bahwa kelanjutan, jika itu adalah tugas anak, dilampirkan ke induk dalam hierarki tugas. Kelanjutannya bisa menjadi tugas anak hanya jika antecedent-nya juga merupakan tugas anak. Secara default, tugas anak (yaitu, tugas dalam yang dibuat oleh tugas luar) dijalankan secara independen dari induknya. Anda dapat menggunakan AttachedToParent opsi sehingga tugas induk dan anak disinkronkan. Perhatikan bahwa jika tugas induk dikonfigurasi dengan DenyChildAttach opsi , AttachedToParent opsi dalam tugas anak tidak berpengaruh, dan tugas anak akan dijalankan sebagai tugas turunan yang dilepaskan. Untuk informasi selengkapnya, lihat Tugas Anak yang Terlampir dan yang Tidak Terlampir. |
| DenyChildAttach | 8 | Menentukan bahwa tugas anak apa pun (yaitu, tugas dalam berlapis apa pun yang dibuat oleh kelanjutan ini) yang dibuat dengan AttachedToParent opsi dan upaya untuk menjalankan sebagai tugas turunan terlampir tidak akan dapat melampirkan ke tugas induk dan akan dijalankan sebagai tugas turunan yang terlepas. Untuk informasi selengkapnya, lihat Tugas Anak yang Terlampir dan yang Tidak Terlampir. |
| HideScheduler | 16 | Menentukan bahwa tugas yang dibuat oleh kelanjutan dengan memanggil metode seperti Run(Action) atau ContinueWith(Action<Task>) melihat penjadwal default (Default) daripada penjadwal tempat kelanjutan ini berjalan sebagai penjadwal saat ini. |
| LazyCancellation | 32 | Dalam kasus pembatalan kelanjutan, mencegah penyelesaian kelanjutan hingga antecedent selesai. |
| RunContinuationsAsynchronously | 64 | Menentukan bahwa tugas kelanjutan harus dijalankan secara asinkron. Opsi ini lebih diutamakan daripada ExecuteSynchronously. |
| NotOnRanToCompletion | 65536 | Menentukan bahwa tugas kelanjutan tidak boleh dijadwalkan jika antecedent-nya berjalan hingga selesai. Antecedent berjalan hingga selesai jika propertinya Status setelah selesai adalah RanToCompletion. Opsi ini tidak valid untuk kelanjutan multi-tugas. |
| NotOnFaulted | 131072 | Menentukan bahwa tugas kelanjutan tidak boleh dijadwalkan jika antecedent-nya melemparkan pengecualian yang tidak tertangani. Antecedent melempar pengecualian yang tidak tertangani jika propertinya Status setelah selesai adalah Faulted. Opsi ini tidak valid untuk kelanjutan multi-tugas. |
| OnlyOnCanceled | 196608 | Menentukan bahwa kelanjutan harus dijadwalkan hanya jika antecedent-nya dibatalkan. Antecedent dibatalkan jika propertinya Status setelah selesai adalah Canceled. Opsi ini tidak valid untuk kelanjutan multi-tugas. |
| NotOnCanceled | 262144 | Menentukan bahwa tugas kelanjutan tidak boleh dijadwalkan jika antecedent-nya dibatalkan. Antecedent dibatalkan jika propertinya Status setelah selesai adalah Canceled. Opsi ini tidak valid untuk kelanjutan multi-tugas. |
| OnlyOnFaulted | 327680 | Menentukan bahwa tugas kelanjutan harus dijadwalkan hanya jika antecedent-nya melemparkan pengecualian yang tidak tertangani. Antecedent melempar pengecualian yang tidak tertangani jika propertinya Status setelah selesai adalah Faulted. Opsi OnlyOnFaulted menjamin bahwa Exception properti dalam antecedent bukan Opsi ini tidak valid untuk kelanjutan multi-tugas. |
| OnlyOnRanToCompletion | 393216 | Menentukan bahwa kelanjutan harus dijadwalkan hanya jika antecedent-nya berjalan hingga selesai. Antecedent berjalan hingga selesai jika propertinya Status setelah selesai adalah RanToCompletion. Opsi ini tidak valid untuk kelanjutan multi-tugas. |
| ExecuteSynchronously | 524288 | Menentukan bahwa tugas kelanjutan harus dijalankan secara sinkron. Dengan opsi ini ditentukan, kelanjutan berjalan pada utas yang sama yang menyebabkan tugas antecedent beralih ke status akhirnya. Jika antecedent sudah selesai ketika kelanjutan dibuat, kelanjutan akan berjalan pada utas yang membuat kelanjutan. Jika CancellationTokenSource antecedent dibuang dalam blok Karena tugas dijalankan secara sinkron, tidak perlu memanggil metode seperti Wait() untuk memastikan bahwa utas panggilan menunggu tugas selesai. |