ControlledExecution.Run(Action, CancellationToken) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.