Enumerazione EClrOperation

Descrive il set di operazioni per cui un host può applicare le azioni dei criteri.

Sintassi

typedef enum {  
    OPR_ThreadAbort,  
    OPR_ThreadRudeAbortInNonCriticalRegion,  
    OPR_ThreadRudeAbortInCriticalRegion,  
    OPR_AppDomainUnload,  
    OPR_AppDomainRudeUnload,  
    OPR_ProcessExit,  
    OPR_FinalizerRun  
} EClrOperation;  

Members

Membro Descrizione
OPR_AppDomainRudeUnload L'host può specificare le azioni dei criteri da eseguire quando un oggetto AppDomain viene scaricato in modo non normale (scortese).
OPR_AppDomainUnload L'host può specificare le azioni dei criteri da eseguire quando un oggetto AppDomain viene scaricato.
OPR_FinalizerRun L'host può specificare le azioni dei criteri da eseguire quando vengono eseguiti i finalizzatori.
OPR_ProcessExit L'host può specificare le azioni dei criteri da eseguire quando il processo viene chiuso.
OPR_ThreadAbort L'host può specificare le azioni dei criteri da eseguire quando viene interrotto un thread.
OPR_ThreadRudeAbortInCriticalRegion L'host può specificare le azioni dei criteri da eseguire quando si verifica un'interruzione di thread non corretta in un'area critica del codice.
OPR_ThreadRudeAbortInNonCriticalRegion L'host può specificare le azioni dei criteri da eseguire quando si verifica un'interruzione di thread scortese in un'area di codice non critica.

Commenti

L'infrastruttura di affidabilità CLR (Common Language Runtime) distingue tra interruzioni e errori di allocazione delle risorse che si verificano in aree critiche del codice e quelle che si verificano in aree di codice non critiche. Questa distinzione è progettata per consentire agli host di impostare criteri diversi a seconda della posizione in cui si verifica un errore nel codice.

Un'area critica del codice è qualsiasi spazio in cui CLR non può garantire che l'interruzione di un'attività o il mancato completamento di una richiesta di risorse influirà solo sull'attività corrente. Ad esempio, se un'attività mantiene un blocco e riceve un HRESULT che indica un errore durante l'esecuzione di una richiesta di allocazione di memoria, non è sufficiente interrompere l'attività per garantire la stabilità di AppDomain, perché AppDomain potrebbe contenere altre attività in attesa dello stesso blocco. Per abbandonare l'attività corrente, queste altre attività potrebbero interrompere la risposta. In tal caso, l'host deve poter scaricare l'intero AppDomain anziché rischiare potenziali instabilità.

Un'area di codice non critica, d'altra parte, è un'area in cui CLR può garantire che un'interruzione o un errore influirà solo sull'attività in cui si verifica l'errore.

CLR distingue anche tra interruzioni graceful e non graceful (rude). In generale, una normale o normale interruzione esegue ogni sforzo per eseguire routine e finalizzatori di gestione delle eccezioni prima di interrompere un'attività, mentre una interruzione scortese non garantisce tali garanzie.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: MSCorEE.dll

Versioni di .NET Framework: Disponibile dalla versione 2.0

Vedi anche