ControlledExecution.Run(Action, CancellationToken) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 façon 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 abandonner l’exécution.
- Attributs
Exceptions
La méthode n’est pas prise en charge sur cette plateforme.
L’argument action est 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 lève 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 retourne à la ControlledExecution.Run méthode.
L’exécution du code n’est pas garantie d’abandonner immédiatement ou du tout. Cette situation peut se produire, par exemple, si un thread est bloqué lors de l’exécution d’un code non managé ou des catchfinally blocs 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 ou finally un catch bloc.
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 l’appeler génère un avertissement au moment de la compilation.