Выполнение кода
Обновлен: Ноябрь 2007
Среда CLR предоставляет инфраструктуру, обеспечивающую управляемое выполнение кода, а также ряд служб, которые можно использовать во время выполнения. Перед выполнением метода его необходимо скомпилировать в код для конкретного процессора. Каждый метод, для которого создан код на промежуточном языке MSIL, при первом вызове проходит JIT-компиляцию, а затем выполняется. При следующем вызове метода будет выполняться существующий JIT-скомпилированный код. Процесс JIT-компиляции и последующего выполнения кода повторяется до завершения выполнения.
Во время выполнения для управляемого кода доступны такие службы, как сборка мусора, обеспечение безопасности, взаимодействие с неуправляемым кодом, поддержка отладки на нескольких языках, а также поддержка расширенного развертывания и управления версиями.
В ОС Microsoft Windows XP и Windows Vista загрузчик операционной системы ищет управляемые модули, проверяя бит в заголовке COFF. Установленный бит обозначает управляемый модуль. Когда загрузчик обнаруживает управляемые модули, он загружает библиотеку Mscoree.dll и _CorValidateImage, а _CorImageUnloading уведомляет загрузчик о загрузке и выгрузке образов управляемого модуля. _CorValidateImage выполняет следующие действия:
Проверяет, является ли код допустимым управляемым кодом.
Заменяет точку входа в образе на точку входа в среде выполнения.
В 64-разрядных системах Windows _CorValidateImage изменяет образ, находящийся в памяти, путем преобразования его из формата PE32 в формат PE32+.
См. также
Основные понятия
Процесс управляемого выполнения