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


Выполнение кода

Обновлен: Ноябрь 2007

Среда CLR предоставляет инфраструктуру, обеспечивающую управляемое выполнение кода, а также ряд служб, которые можно использовать во время выполнения. Перед выполнением метода его необходимо скомпилировать в код для конкретного процессора. Каждый метод, для которого создан код на промежуточном языке MSIL, при первом вызове проходит JIT-компиляцию, а затем выполняется. При следующем вызове метода будет выполняться существующий JIT-скомпилированный код. Процесс JIT-компиляции и последующего выполнения кода повторяется до завершения выполнения.

Во время выполнения для управляемого кода доступны такие службы, как сборка мусора, обеспечение безопасности, взаимодействие с неуправляемым кодом, поддержка отладки на нескольких языках, а также поддержка расширенного развертывания и управления версиями.

В ОС Microsoft Windows XP и Windows Vista загрузчик операционной системы ищет управляемые модули, проверяя бит в заголовке COFF. Установленный бит обозначает управляемый модуль. Когда загрузчик обнаруживает управляемые модули, он загружает библиотеку Mscoree.dll и _CorValidateImage, а _CorImageUnloading уведомляет загрузчик о загрузке и выгрузке образов управляемого модуля. _CorValidateImage выполняет следующие действия:

  1. Проверяет, является ли код допустимым управляемым кодом.

  2. Заменяет точку входа в образе на точку входа в среде выполнения.

В 64-разрядных системах Windows _CorValidateImage изменяет образ, находящийся в памяти, путем преобразования его из формата PE32 в формат PE32+.

См. также

Основные понятия

Процесс управляемого выполнения

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

Безопасность в .NET Framework

Взаимодействие с неуправляемым кодом

Развертывание приложений .NET Framework