Share via


ICLRTask 介面

提供方法,允許主機對通用語言執行平台 (CLR) 提出要求,或向 CLR 提供相關工作的通知。

方法

方法 描述
Abort 方法 要求 CLR 中止目前 ICLRTask 執行個體所代表的工作。
ExitTask 方法 通知 CLR,與目前 ICLRTask 執行個體相關聯的工作正在結束,並嘗試正常關閉工作。
GetMemStats 方法 取得目前 ICLRTask 執行個體所代表工作的記憶體資源使用統計資訊。
LocksHeld 方法 取得工作上目前保有的鎖定數目。
NeedsPriorityScheduling 方法 取得值,指出主機是否應該指派高優先順序,以重新排程目前 ICLRTask 執行個體所代表的工作。
Reset 方法 通知 CLR,主機已完成工作,並讓 CLR 重複使用目前的 ICLRTask 執行個體來代表另一項工作。
RudeAbort 方法 導致 CLR 立即中止目前 ICLRTask 執行個體所代表的工作,但不保證會執行完成項。
SetTaskIdentifier 方法 設定目前 ICLRTask 執行個體所代表之工作的唯一識別碼,以便用於偵錯。
SwitchIn 方法 通知 CLR,目前 ICLRTask 執行個體所代表的工作處於可操作狀態。
SwitchOut 方法 通知 CLR,目前 ICLRTask 執行個體所代表的工作不再處於可操作狀態。
YieldTask 方法 要求 CLR 讓處理器時間可供其他工作使用。 CLR 不保證工作會處於可產生處理時間的狀態。

備註

ICLRTask 是 CLR 工作的表示法。 在程式碼執行期間的任何時間點,均可將工作描述為執行中或等待執行。 主機會呼叫 ICLRTask::SwitchIn 方法來通知 CLR,目前 ICLRTask 執行個體所代表的工作現在處於可操作狀態。 呼叫 ICLRTask::SwitchIn 之後,主機可以在任何作業系統執行緒上排程工作,除非執行階段需要執行緒親和性,如呼叫 IHostTaskManager::BeginThreadAffinityIHostTaskManager::EndThreadAffinity 方法所指定。 稍後,作業系統可能決定從執行緒中移除工作,並將其置於非執行中狀態。 例如,每當工作在同步處理基本類型上封鎖,或等候 I/O 作業完成時,就會發生這種情況。 主機會呼叫 SwitchOut 來通知 CLR,目前 ICLRTask 執行個體所代表的工作不再處於可操作狀態。

工作通常會在程式碼執行結束時終止。 此時,主機會呼叫 ICLRTask::ExitTask 以終結相關聯的 ICLRTask。 不過,也可使用對 ICLRTask::Reset 的呼叫來回收工作,這允許再次使用 ICLRTask 執行個體。 這種方法可防止重複建立和終結執行個體的額外負荷。

規格需求

平台:請參閱系統需求

標題: MSCorEE.h

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

.NET Framework版本:自 2.0 起提供

另請參閱