ControlledExecution.Run(Action, CancellationToken) Método

Definição

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.

Aplica-se a