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 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.