ICLRTask 接口

提供一些方法,这些方法允许宿主发出公共语言运行时 (CLR) 请求,或者向 CLR 提供有关相关联任务的通知。

方法

方法

说明

ICLRTask::Abort 方法

请求 CLR 中止当前 ICLRTask 实例表示的任务。

ICLRTask::ExitTask 方法

通知 CLR 与当前 ICLRTask 实例关联的任务即将结束,并尝试正常关闭该任务。

ICLRTask::GetMemStats 方法

获取有关当前 ICLRTask 实例表示的任务的内存资源使用情况的统计信息。

ICLRTask::LocksHeld 方法

获取任务当前持有的锁的数量。

ICLRTask::NeedsPriorityScheduling 方法

获取一个值,该值指示主机是否应为重新安排由当前 ICLRTask 实例表示的任务分配一个高优先级。

ICLRTask::Reset 方法

通知 CLR 宿主已完成一个任务,并使 CLR 重用当前的 ICLRTask 实例以表示其他任务。

ICLRTask::RudeAbort 方法

使 CLR 立即中止由当前 ICLRTask 实例表示的任务,但不会保证将执行终结器。

ICLRTask::SetTaskIdentifier 方法

为当前 ICLRTask 实例表示的任务设置唯一的标识符,以便在调试中使用。

ICLRTask::SwitchIn 方法

通知 CLR 由当前 ICLRTask 实例表示的任务处于可操作状态。

ICLRTask::SwitchOut 方法

通知 CLR 由当前 ICLRTask 实例表示的任务不再处于可操作状态。

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 实例。 此方法可避免重复创建和销毁实例的系统开销。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**MSCorEE.h

**库:**作为一项资源包含在 MSCorEE.dll 中

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

ICLRTaskManager 接口

IHostTask 接口

IHostTaskManager 接口

ICLRTask2 接口

其他资源

承载接口