ControlledExecution.Run(Action, CancellationToken) Metode
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.
Perhatian
ControlledExecution.Run method may corrupt the process and should not be used in production code.
Menjalankan kode yang dapat dibatalkan secara asinkron.
public:
static void Run(Action ^ action, System::Threading::CancellationToken cancellationToken);
[System.Obsolete("ControlledExecution.Run method may corrupt the process and should not be used in production code.", DiagnosticId="SYSLIB0046", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static void Run (Action action, System.Threading.CancellationToken cancellationToken);
[<System.Obsolete("ControlledExecution.Run method may corrupt the process and should not be used in production code.", DiagnosticId="SYSLIB0046", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member Run : Action * System.Threading.CancellationToken -> unit
Public Shared Sub Run (action As Action, cancellationToken As CancellationToken)
Parameter
- action
- Action
Delegasi yang mewakili kode yang akan dijalankan.
- cancellationToken
- CancellationToken
Token pembatalan yang dapat digunakan untuk membatalkan eksekusi.
- Atribut
Pengecualian
Metode ini tidak didukung pada platform ini.
Argumennya action
adalah null
.
Utas saat ini sudah menjalankan Run(Action, CancellationToken) metode .
Eksekusi dibatalkan.
Keterangan
Metode ini memungkinkan membatalkan kode terkelola arbitrer dengan cara non-kooperatif dengan melemparkan pengecualian dalam utas yang mengeksekusi kode tersebut. Sementara pengecualian dapat ditangkap oleh kode, itu dilemparkan kembali di akhir catch
blok sampai alur eksekusi kembali ke ControlledExecution.Run
metode .
Eksekusi kode tidak dijamin untuk segera dibatalkan, atau sama sekali. Situasi ini dapat terjadi, misalnya, jika utas macet menjalankan kode yang tidak dikelola atau catch
blok dan finally
yang disebut sebagai bagian dari prosedur pembatalan, sehingga tanpa batas waktu menunda pembatalan. Selain itu, eksekusi mungkin tidak segera dibatalkan jika utas saat ini menjalankan catch
blok atau finally
.
Membatalkan kode di lokasi yang tidak terduga dapat merusak status struktur data dalam proses dan menyebabkan hasil yang tidak dapat diprediksi. Untuk alasan itu, metode ini tidak boleh digunakan dalam kode produksi dan memanggilnya menghasilkan peringatan waktu kompilasi.