Интерфейс ICLRTask
Предоставляет методы, позволяющие основному приложению отправлять запросы в среду CLR или предоставлять этой среде уведомление о соответствующей задаче.
Методы
Метод |
Описание |
---|---|
Запрашивает прерывание средой CLR задачи, представленной текущим экземпляром ICLRTask. |
|
Уведомляет среду CLR о том, что задача, связанная с текущим экземпляром ICLRTask, закончена, и предпринимает попытку выполнить завершение выполнения задачи надлежащим образом. |
|
Получает статистические сведения об использовании ресурсов памяти задачей, представленной текущим экземпляром ICLRTask. |
|
Получает количество блокировок, налагаемых в настоящее время на задачу. |
|
Получает значение, указывающее, должно ли основное приложение назначить высший приоритет перепланированию задачи, представленной текущим экземпляром ICLRTask. |
|
Информирует среду CLR о том, что основное приложение завершило выполнение задачи, и позволяет этой среде использовать текущий экземпляр ICLRTask повторно для представления другой задачи. |
|
Вынуждает среду CLR незамедлительно прервать выполнение задачи, представленной текущим экземпляром ICLRTask, без обеспечения выполнения методов завершения. |
|
Задает уникальный идентификатор для задачи, представленной текущим экземпляром ICLRTask, который будет использоваться во время отладки. |
|
Уведомляет среду CLR о том, что задача, представленная текущим экземпляром ICLRTask, находится в рабочем состоянии. |
|
Уведомляет среду CLR о том, что задача, представленная текущим экземпляром ICLRTask, больше не находится в рабочем состоянии. |
|
Запрашивает предоставление средой 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