ControlledExecution.Run(Action, CancellationToken) 方法

定义

注意

ControlledExecution.Run method may corrupt the process and should not be used in production code.

运行可以异步中止的代码。

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)

参数

action
Action

表示要执行的代码的委托。

cancellationToken
CancellationToken

可用于中止执行的取消标记。

属性

例外

此平台不支持 方法。

action 参数为 null

当前线程已在运行 Run(Action, CancellationToken) 方法。

执行已中止。

注解

此方法通过在执行该代码的线程中引发异常,允许以非协作方式中止任意托管代码。 虽然异常可能被代码捕获,但它会在块末尾 catch 重新引发,直到执行流返回到 ControlledExecution.Run 方法。

不保证代码的执行会立即中止或完全中止。 例如,如果线程在执行非托管代码或 catch 作为中止过程一部分调用的 和 finally 块时停滞,则可能会出现这种情况,从而无限期地延迟中止。 此外,如果线程当前正在执行 catchfinally 块,则执行可能不会立即中止。

在意外位置中止代码可能会损坏进程中数据结构的状态,并导致不可预知的结果。 因此,不应在生产代码中使用此方法,并且调用该方法会生成编译时警告。

适用于