ICLRTask2 介面
提供 ICLRTask 介面的所有功能;此外,提供可在目前執行緒上延遲執行緒中止的方法。
方法
方法 | 描述 |
---|---|
BeginPreventAsyncAbort 方法 | 延遲目前執行緒上的新執行緒中止要求。 |
EndPreventAsyncAbort 方法 | 允許新的或擱置的執行緒中止要求,以在目前的執行緒上中止執行緒。 |
備註
ICLRTask2
介面會繼承 ICLRTask
介面,並新增方法讓主機能夠延遲執行緒中止,以保護不得失敗的程式碼區域。 呼叫 BeginPreventAsyncAbort
會將目前執行緒的 delay-thread-abort 計數器遞增,呼叫 EndPreventAsyncAbort
則會將其遞減。 BeginPreventAsyncAbort
和 EndPreventAsyncAbort
的呼叫可以是巢狀的。 只要計數器大於零,目前執行緒的執行緒中止就會延遲。
如果 BeginPreventAsyncAbort
和 EndPreventAsyncAbort
的呼叫未成對,則有可能觸達執行緒中止無法傳遞至目前執行緒的狀態。
本身中止的執行緒不接受延遲。
此功能所公開的功能會由虛擬機器 (VM) 在內部使用。 誤用這些方法可能導致 VM 出現未指定的行為。 例如,當 VM 先前遞增計數器時,在未先呼叫 BeginPreventAsyncAbort
的情況下呼叫 EndPreventAsyncAbort
可能會將計數器設定為零。 同樣地,不會檢查內部計數器是否溢位。 如果計數器因為主機和 VM 都會使其遞增而超過其整數限制,則未指定產生的行為。
如需繼承自 ICLRTask
的成員和這個介面其他用途的相關資訊,請參閱 ICLRTask 介面。
規格需求
平台:請參閱系統需求。
標題: MSCorEE.h
程式庫:包含作為 MSCorEE.dll 中的資源
.NET Framework版本:自 4 起可用