Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Сообщает среде 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