Поделиться через


Интерфейс ICLRTask

Предоставляет методы, позволяющие основному приложению отправлять запросы в среду CLR или предоставлять этой среде уведомление о соответствующей задаче.

Методы

Метод

Описание

Метод ICLRTask::Abort

Запрашивает прерывание средой CLR задачи, представленной текущим экземпляром ICLRTask.

Метод ICLRTask::ExitTask

Уведомляет среду CLR о том, что задача, связанная с текущим экземпляром ICLRTask, закончена, и предпринимает попытку выполнить завершение выполнения задачи надлежащим образом.

Метод ICLRTask::GetMemStats

Получает статистические сведения об использовании ресурсов памяти задачей, представленной текущим экземпляром ICLRTask.

Метод ICLRTask::LocksHeld

Получает количество блокировок, налагаемых в настоящее время на задачу.

Метод ICLRTask::NeedsPriorityScheduling

Получает значение, указывающее, должно ли основное приложение назначить высший приоритет перепланированию задачи, представленной текущим экземпляром ICLRTask.

Метод ICLRTask::Reset

Информирует среду 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::BeginThreadAffinity и IHostTaskManager::EndThreadAffinity. Несколько позже операционная система может удалить задачу из потока и перевести ее в невыполняемое состояние. Такое может, например, произойти при блокировании задачи в примитивах синхронизации или ожидании ею завершения операций ввода-вывода. Основное приложение вызывает метод SwitchOut для уведомления среды CLR о том, что задача, представленная текущим экземпляром ICLRTask, более не пребывает в рабочем состоянии.

Обычно, задача прерывается в конце выполнения кода. В этот момент основное приложение вызывает метод ICLRTask::ExitTask для удаления связанного с ним интерфейса ICLRTask. Однако, повторное выполнение задачи можно также обеспечить путем вызова экземпляра ICLRTask::Reset, который позволяет повторно использовать экземпляр ICLRTask. Этот подход позволяет избежать избытка служебных данных, возникающих в результате многократного создания и удаления экземпляров.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: MSCorEE.h

Библиотека: включена как ресурс в MSCorEE.dll

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0

См. также

Ссылки

Интерфейс ICLRTaskManager

Интерфейс IHostTask

Интерфейс IHostTaskManager

Интерфейс ICLRTask2

Другие ресурсы

Интерфейсы размещения