Condividi tramite


Esecuzione del codice

Aggiornamento: novembre 2007

Mediante Common Language Runtime viene fornita l'infrastruttura che rende possibile l'esecuzione gestita e viene resa disponibile un'ampia gamma di servizi che è possibile utilizzare durante l'esecuzione. Prima di poter eseguire un metodo, è necessario compilarlo nel codice specifico del processore. Ciascun metodo per il quale è stato generato codice MSIL (Microsoft Intermediate Language) viene compilato in modalità JIT (Just-In-Time) alla prima chiamata, quindi viene eseguito. Alla successiva esecuzione del metodo, viene eseguito il codice nativo compilato in modalità JIT esistente. Questo processo di compilazione in modalità JIT e di esecuzione del codice viene ripetuto fino a completamento dell'esecuzione.

In fase di esecuzione, il codice gestito riceve servizi quali le operazioni di Garbage Collection, la protezione, l'interoperabilità con il codice non gestito, il supporto per il debug tra linguaggi e il supporto avanzato per la distribuzione e il controllo delle versioni.

In Microsoft Windows XP e Windows Vista il caricatore del sistema operativo consente di verificare la presenza di moduli gestiti esaminando un bit nell'intestazione del formato file oggetto comune (COFF, Common Object File Format). Il bit inviato denota un modulo gestito. Se il caricatore rileva dei moduli gestiti, carica mscoree.dll. _CorValidateImage e _CorImageUnloading notificano al caricatore il caricamento e lo scaricamento delle immagini dei moduli gestiti. _CorValidateImage esegue le azioni seguenti:

  1. Verifica della validità del codice come codice gestito.

  2. Modifica del punto di ingresso nell'immagine in un punto di ingresso nel runtime.

Nelle versioni a 64 bit dei sistemi operativi Windows, _CorValidateImage modifica l'immagine presente in memoria trasformandone il formato da PE32 a PE32+.

Vedere anche

Concetti

Processo di esecuzione gestita

Altre risorse

Protezione in .NET Framework

Interoperabilità con codice non gestito

Distribuzione di applicazioni .NET Framework