ControlledExecution.Run(Action, CancellationToken) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Atenção
ControlledExecution.Run method may corrupt the process and should not be used in production code.
Executa código que pode ser abortado 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 executar.
- cancellationToken
- CancellationToken
O token de cancelamento que pode ser usado para abortar a execução.
- Atributos
Exceções
O método não é suportado nesta plataforma.
O action argumento é null.
O thread atual já está a executar o Run(Action, CancellationToken) método.
A execução foi abortada.
Observações
Este método permite abortar código gerido arbitrário de forma não cooperativa, lançando uma exceção no thread que executa esse código. Embora a exceção possa ser detetada pelo código, ela é relançada no final dos catch blocos até que o fluxo de execução regresse ao ControlledExecution.Run método.
A execução do código não garante abortar imediatamente, ou sequer abortar. Esta situação pode ocorrer, por exemplo, se um thread ficar preso a executar código não gerido ou os catch blocos and finally chamados como parte do procedimento de abortar, atrasando indefinidamente o aborto. Além disso, a execução pode não ser abortada imediatamente se o thread estiver atualmente a executar um catch bloco ou (ou finally block).
Abortar código num local inesperado pode corromper o estado das estruturas de dados no processo e levar a resultados imprevisíveis. Por essa razão, este método não deve ser usado em código de produção e chamá-lo gera um aviso em tempo de compilação.