ControlledExecution.Run(Action, CancellationToken) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
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
块时停滞,则可能会出现这种情况,从而无限期地延迟中止。 此外,如果线程当前正在执行 catch
或 finally
块,则执行可能不会立即中止。
在意外位置中止代码可能会损坏进程中数据结构的状态,并导致不可预知的结果。 因此,不应在生产代码中使用此方法,并且调用该方法会生成编译时警告。