Compartir a través de


ControlledExecution.Run(Action, CancellationToken) Método

Definición

Precaución

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

Ejecuta código que se puede anular de forma asincrónica.

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)

Parámetros

action
Action

Delegado que representa el código que se va a ejecutar.

cancellationToken
CancellationToken

Token de cancelación que se puede usar para anular la ejecución.

Atributos

Excepciones

El método no se admite en esta plataforma.

El argumento action es null.

El subproceso actual ya está ejecutando el Run(Action, CancellationToken) método .

Se anuló la ejecución.

Comentarios

Este método permite anular código administrado arbitrario de forma no cooperativa iniciando una excepción en el subproceso que ejecuta ese código. Aunque el código puede detectar la excepción, se vuelve a iniciar al final de los bloques hasta que el flujo de catch ejecución vuelve al ControlledExecution.Run método .

No se garantiza que la ejecución del código se anule inmediatamente o en absoluto. Esta situación puede producirse, por ejemplo, si un subproceso está bloqueado ejecutando código no administrado o los bloques y finally a los catch que se llama como parte del procedimiento de anulación, lo que retrasa indefinidamente la anulación. Además, es posible que la ejecución no se anule inmediatamente si el subproceso está ejecutando actualmente un catch bloque o finally .

La anulación del código en una ubicación inesperada puede dañar el estado de las estructuras de datos en el proceso y provocar resultados impredecibles. Por ese motivo, este método no debe usarse en el código de producción y llamarlo genera una advertencia en tiempo de compilación.

Se aplica a