ICLRTask2::BeginPreventAsyncAbort 方法
延迟新线程中止请求,从而导致当前线程上的线程中止。
语法
HRESULT BeginPreventAsyncAbort();
返回值
此方法返回以下特定 HRESULT 以及表示方法失败的 HRESULT 错误。
HRESULT | 说明 |
---|---|
S_OK | 该方法已成功完成。 |
HOST_E_INVALIDOPERATION | 在不是当前线程的线程上调用了此方法。 |
备注
调用此方法会将当前线程的 delay-thread-abort 计数器加 1。
对 BeginPreventAsyncAbort
和 ICLRTask2::EndPreventAsyncAbort 的调用可以嵌套。 只要计数器大于零,就会延迟当前线程的线程中止。 如果此调用未与对 EndPreventAsyncAbort
方法的调用配对,则可能会达到线程中止无法传递到当前线程的状态。
此延迟不适用于自行中止的线程。
此功能公开的功能由虚拟机 (VM) 在内部使用。 滥用这些方法可能会导致 VM 中出现未指定的行为。 例如,如果 VM 之前已递增计数器,则在未调用 BeginPreventAsyncAbort
之前调用 EndPreventAsyncAbort
可能将计数器设置为零。 同样,不会检查内部计数器是否溢出。 如果内部计数器由于主机和 VM 对它进行递增而超出它的整数限制,则不指定结果行为。
要求
平台:请参阅系统要求。
标头:MSCorEE.h
库:作为资源包含在 MSCorEE.dll 中
.NET Framework 版本:自 4 起可用