Compartilhar via


ControlledExecution.Run(Action, CancellationToken) Método

Definição

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.

Aplica-se a