ICLRTask2::BeginPreventAsyncAbort 方法

延迟新线程中止请求,从而导致当前线程上的线程中止。

语法

HRESULT BeginPreventAsyncAbort();  

返回值

此方法返回以下特定 HRESULT 以及表示方法失败的 HRESULT 错误。

HRESULT 说明
S_OK 该方法已成功完成。
HOST_E_INVALIDOPERATION 在不是当前线程的线程上调用了此方法。

备注

调用此方法会将当前线程的 delay-thread-abort 计数器加 1。

BeginPreventAsyncAbortICLRTask2::EndPreventAsyncAbort 的调用可以嵌套。 只要计数器大于零,就会延迟当前线程的线程中止。 如果此调用未与对 EndPreventAsyncAbort 方法的调用配对,则可能会达到线程中止无法传递到当前线程的状态。

此延迟不适用于自行中止的线程。

此功能公开的功能由虚拟机 (VM) 在内部使用。 滥用这些方法可能会导致 VM 中出现未指定的行为。 例如,如果 VM 之前已递增计数器,则在未调用 BeginPreventAsyncAbort 之前调用 EndPreventAsyncAbort 可能将计数器设置为零。 同样,不会检查内部计数器是否溢出。 如果内部计数器由于主机和 VM 对它进行递增而超出它的整数限制,则不指定结果行为。

要求

平台:请参阅系统要求

标头:MSCorEE.h

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

.NET Framework 版本:自 4 起可用

请参阅