Partager via


ControlledExecution.Run(Action, CancellationToken) Méthode

Définition

Attention

ControlledExecution.Run method may corrupt the process and should not be used in production code.

Exécute du code qui peut être abandonné de manière asynchrone.

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)

Paramètres

action
Action

Délégué qui représente le code à exécuter.

cancellationToken
CancellationToken

Jeton d’annulation qui peut être utilisé pour annuler l’exécution.

Attributs

Exceptions

La méthode n’est pas prise en charge sur cette plateforme.

L'argument action a la valeur null.

Le thread actuel exécute déjà la Run(Action, CancellationToken) méthode .

L’exécution a été abandonnée.

Remarques

Cette méthode permet d’arrêter le code managé arbitraire de manière non coopérative en lisant une exception dans le thread exécutant ce code. Bien que l’exception puisse être interceptée par le code, elle est levée à la fin des blocs jusqu’à ce que le flux d’exécution catch revienne à la ControlledExecution.Run méthode.

L’exécution du code n’est pas garantie pour abandonner immédiatement ou du tout. Cette situation peut se produire, par exemple, si un thread est bloqué en exécutant du code non managé ou les catch blocs et finally appelés dans le cadre de la procédure d’abandon, ce qui retarde indéfiniment l’abandon. En outre, l’exécution peut ne pas être abandonnée immédiatement si le thread exécute actuellement un catch bloc ou .finally

L’abandon du code à un emplacement inattendu peut endommager l’état des structures de données dans le processus et entraîner des résultats imprévisibles. Pour cette raison, cette méthode ne doit pas être utilisée dans le code de production et son appel génère un avertissement au moment de la compilation.

S’applique à