Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сообщает среде CLR о том, что узел выполнил задачу, и позволяет среде CLR повторно использовать текущий экземпляр ICLRTask для представления другой задачи.
Синтаксис
HRESULT Reset (
[in] BOOL fFull
);
Параметры
fFull
[in] true, если среда выполнения должна сбрасывать все статические значения, связанные с потоком, в дополнение к сведениям о безопасности и языковом стандарте, связанным с текущим ICLRTask экземпляром; в противном случае — значение false.
Если значение равно true, среда выполнения сбрасывает данные, сохраненные с помощью AllocateDataSlot или AllocateNamedDataSlot.
Возвращаемое значение
| HRESULT | Описание: |
|---|---|
| S_OK |
Reset возвращается успешно. |
| HOST_E_CLRNOTAVAILABLE | Среда CLR не была загружена в процесс или среда CLR находится в состоянии, в котором она не может выполнить управляемый код или обработать вызов. Успешно |
| HOST_E_TIMEOUT | Истекло время ожидания звонка. |
| HOST_E_NOT_OWNER | Вызывающий объект не является владельцем блокировки. |
| HOST_E_ABANDONED | Событие было отменено во время ожидания заблокированного потока или волокна. |
| E_FAIL | Произошла неизвестная катастрофическая ошибка. Когда метод возвращает E_FAIL, среда CLR больше не поддерживается в процессе. Последующие вызовы методов размещения возвращают HOST_E_CLRNOTAVAILABLE. |
Комментарии
Среда CLR может перезапускать ранее созданные ICLRTask экземпляры, чтобы избежать издержек, связанных с повторным созданием новых экземпляров каждый раз, когда требуется новая задача. Узел включает эту функцию, вызывая ICLRTask::Reset вместо ICLRTask::ExitTask после завершения задачи. В следующем списке представлен обычный жизненный цикл экземпляра ICLRTask :
Среда выполнения создает новый
ICLRTaskэкземпляр .Среда выполнения вызывает IHostTaskManager::GetCurrentTask , чтобы получить ссылку на текущую задачу узла.
Среда выполнения вызывает IHostTask::SetCLRTask , чтобы связать новый экземпляр с задачей узла.
Задача выполняется и завершается.
Узел уничтожает задачу, вызывая
ICLRTask::ExitTask.
Reset изменяет этот сценарий двумя способами. На шаге 5 выше узел вызывает Reset для сброса задачи в чистое состояние, а затем отделяет экземпляр от связанного ICLRTaskэкземпляра IHostTask . При необходимости узел также может кэшировать экземпляр для повторного IHostTask использования. На шаге 1 выше среда выполнения извлекает из кэша корзину ICLRTask вместо создания нового экземпляра.
Этот подход хорошо работает, если узел также имеет пул многократно используемых рабочих задач. Когда узел уничтожает один из своих IHostTask экземпляров, он уничтожает соответствующий ICLRTask , вызывая ExitTask.
Требования
Платформы: см. раздел Требования к системе.
Заголовка: MSCorEE.h
Библиотека: Включено в качестве ресурса в MSCorEE.dll
версии платформа .NET Framework: доступно с версии 2.0