共用方式為


ICLRTask2 介面

提供 ICLRTask 介面的所有功能;此外,提供可在目前執行緒上延遲執行緒中止的方法。

方法

方法 描述
BeginPreventAsyncAbort 方法 延遲目前執行緒上的新執行緒中止要求。
EndPreventAsyncAbort 方法 允許新的或擱置的執行緒中止要求,以在目前的執行緒上中止執行緒。

備註

ICLRTask2 介面會繼承 ICLRTask 介面,並新增方法讓主機能夠延遲執行緒中止,以保護不得失敗的程式碼區域。 呼叫 BeginPreventAsyncAbort 會將目前執行緒的 delay-thread-abort 計數器遞增,呼叫 EndPreventAsyncAbort 則會將其遞減。 BeginPreventAsyncAbortEndPreventAsyncAbort 的呼叫可以是巢狀的。 只要計數器大於零,目前執行緒的執行緒中止就會延遲。

如果 BeginPreventAsyncAbortEndPreventAsyncAbort 的呼叫未成對,則有可能觸達執行緒中止無法傳遞至目前執行緒的狀態。

本身中止的執行緒不接受延遲。

此功能所公開的功能會由虛擬機器 (VM) 在內部使用。 誤用這些方法可能導致 VM 出現未指定的行為。 例如,當 VM 先前遞增計數器時,在未先呼叫 BeginPreventAsyncAbort 的情況下呼叫 EndPreventAsyncAbort 可能會將計數器設定為零。 同樣地,不會檢查內部計數器是否溢位。 如果計數器因為主機和 VM 都會使其遞增而超過其整數限制,則未指定產生的行為。

如需繼承自 ICLRTask 的成員和這個介面其他用途的相關資訊,請參閱 ICLRTask 介面。

規格需求

平台:請參閱系統需求

標題: MSCorEE.h

程式庫:包含作為 MSCorEE.dll 中的資源

.NET Framework版本:自 4 起可用

另請參閱