ControlledExecution.Run(Action, CancellationToken) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cuidado
ControlledExecution.Run method may corrupt the process and should not be used in production code.
Executa o código que pode ser anulado de forma assíncrona.
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
O delegado que representa o código a ser executado.
- cancellationToken
- CancellationToken
O token de cancelamento que pode ser usado para anular a execução.
- Atributos
Exceções
Não há suporte para o método nesta plataforma.
O argumento action
é null
.
O thread atual já está executando o Run(Action, CancellationToken) método .
A execução foi anulada.
Comentários
Esse método permite anular o código gerenciado arbitrário de maneira não cooperativa lançando uma exceção no thread que executa esse código. Embora a exceção possa ser capturada pelo código, ela é lançada novamente no final dos blocos até que o fluxo de catch
execução retorne ao ControlledExecution.Run
método .
Não há garantia de que a execução do código seja anulada imediatamente ou. Essa situação pode ocorrer, por exemplo, se um thread estiver preso executando o código não gerenciado ou os catch
blocos e finally
que são chamados como parte do procedimento de anulação, atrasando indefinidamente a anulação. Além disso, a execução poderá não ser anulada imediatamente se o thread estiver executando um catch
bloco ou finally
no momento.
Anular o código em um local inesperado pode corromper o estado das estruturas de dados no processo e levar a resultados imprevisíveis. Por esse motivo, esse método não deve ser usado no código de produção e chamá-lo produz um aviso de tempo de compilação.