Bagikan melalui


ControlledExecution.Run(Action, CancellationToken) Metode

Definisi

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.

Berlaku untuk