ICLRTask2 介面
提供 ICLRTask 介面的所有功能,此外,還提供方法以允許延遲目前執行緒上的執行緒中止。
方法
方法 |
描述 |
---|---|
延遲目前執行緒上的新執行緒中止要求。 |
|
可讓新的或暫止的執行緒中止要求導致目前執行緒上的執行緒中止。 |
備註
ICLRTask2 介面會繼承 ICLRTask 介面,並且新增方法,讓主機可以延遲執行緒中止,以保護絕不能失敗的程式碼區域。 呼叫 BeginPreventAsyncAbort 會使目前執行緒的延遲執行緒中止計數器遞增,而呼叫 EndPreventAsyncAbort 則會使計數器遞減。 BeginPreventAsyncAbort 和 EndPreventAsyncAbort 方法的呼叫可以是巢狀。 只要計數器結果大於零,會延遲目前執行緒的執行緒中止。
如果對 BeginPreventAsyncAbort 和 EndPreventAsyncAbort 的呼叫沒有配對,就可能會達到執行緒中止無法傳遞至目前執行緒的狀態。
自我中止的執行緒就不會執行延遲。
此功能公開的功能供虛擬機器 (VM) 內部使用。 誤用這些方法可能會導致 VM 發生不明的行為。 例如,若 VM 先前已遞增過計數器,則呼叫 EndPreventAsyncAbort 而未先呼叫 BeginPreventAsyncAbort 可能會將計數器設定為零。 同樣地,也不會檢查內部計數器溢位。 如果因為主機和 VM 遞增計數器值而超出其整數限制,則結果行為不明。
如需繼承自 ICLRTask 的成員,以及這個介面其他用法的詳細資訊,請參閱 ICLRTask 介面。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**MSCorEE.h
程式庫:包含做為 MSCorEE.dll 中的資源
**.NET Framework 版本:**4