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::BeginThreadAffinity 和 IHostTaskManager::EndThreadAffinity 方法所指定。 稍後,作業系統可能決定從執行緒中移除工作,並將其置於非執行中狀態。 例如,每當工作在同步處理基本類型上封鎖,或等候 I/O 作業完成時,就會發生這種情況。 主機會呼叫 SwitchOut 來通知 CLR,目前 ICLRTask
執行個體所代表的工作不再處於可操作狀態。
工作通常會在程式碼執行結束時終止。 此時,主機會呼叫 ICLRTask::ExitTask
以終結相關聯的 ICLRTask
。 不過,也可使用對 ICLRTask::Reset
的呼叫來回收工作,這允許再次使用 ICLRTask
執行個體。 這種方法可防止重複建立和終結執行個體的額外負荷。
規格需求
平台:請參閱系統需求。
標題: MSCorEE.h
程式庫:包含作為 MSCorEE.dll 中的資源
.NET Framework版本:自 2.0 起提供