ICLRTask2 接口

提供 ICLRTask 接口的所有功能;此外,还提供可用于在当前线程上延迟线程中止的方法。

方法

方法

说明

ICLRTask2::BeginPreventAsyncAbort 方法

延迟当前线程上新的线程中止请求。

ICLRTask2::EndPreventAsyncAbort 方法

允许新的或挂起的线程中止请求导致针对当前线程的线程中止。

备注

ICLRTask2 接口继承 ICLRTask 接口,并添加允许主机延迟线程中止的方法,从而保护不得失败的代码区域。 调用 BeginPreventAsyncAbort 可增大当前线程的延迟-线程-中止计数器;调用 EndPreventAsyncAbort 可减小该计数器。 对 BeginPreventAsyncAbortEndPreventAsyncAbort 方法的调用可以嵌套。 只要计数器大于零,就会延迟当前线程的线程中止。

如果对 BeginPreventAsyncAbort 的调用和对 EndPreventAsyncAbort 的调用未成对,则可能会进入无法将线程中止传递给当前线程的状态。

延迟对于自我中止的线程不起作用。

虚拟机 (VM) 会在内部使用此功能公开的功能。 滥用这些方法会导致 VM 中出现未指定的行为。 例如,在 VM 先前已增大计数器的情况下,若在调用 EndPreventAsyncAbort 之前未先调用 BeginPreventAsyncAbort,则会将计数器设置为零。 同样,不会检查内部计数器是否存在溢出情况。 如果因主机和 VM 将计数器增大而导致计数器超出其整数限制,则会产生未指定的行为。

有关继承自 ICLRTask 的成员和此继承的其他用法的信息,请参见 ICLRTask 接口。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**MSCorEE.h

**库:**作为一项资源包含在 MSCorEE.dll 中

**.NET Framework 版本:**4

请参见

参考

ICLRTask 接口

ICLRTaskManager 接口

IHostTask 接口

IHostTaskManager 接口

其他资源

承载接口