Dela via


Uppräkning av EClrOperation

Beskriver den uppsättning åtgärder som en värd kan tillämpa principåtgärder för.

Syntax

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

Medlemmar

Medlem Description
OPR_AppDomainRudeUnload Värden kan ange principåtgärder som ska vidtas när en AppDomain tas bort på ett icke-graciöst (oförskämt) sätt.
OPR_AppDomainUnload Värden kan ange vilka principåtgärder som ska vidtas när en AppDomain tas bort.
OPR_FinalizerRun Värden kan ange vilka principåtgärder som ska vidtas när slutförarna körs.
OPR_ProcessExit Värden kan ange vilka principåtgärder som ska vidtas när processen avslutas.
OPR_ThreadAbort Värden kan ange vilka principåtgärder som ska vidtas när en tråd avbryts.
OPR_ThreadRudeAbortInCriticalRegion Värden kan ange vilka principåtgärder som ska vidtas när en ohövlig tråd avbryts i en kritisk kodregion.
OPR_ThreadRudeAbortInNonCriticalRegion Värden kan ange vilka principåtgärder som ska vidtas när en ohövlig tråd avbryts i en icke-kritisk kodregion.

Kommentarer

Clr-tillförlitlighetsinfrastrukturen (Common Language Runtime) skiljer mellan avbrutna och resursallokeringsfel som inträffar i kritiska kodregioner och de som inträffar i icke-kritiska kodregioner. Den här skillnaden är utformad för att göra det möjligt för värdar att ange olika principer beroende på var ett fel inträffar i koden.

Ett kritiskt kodområde är ett utrymme där CLR inte kan garantera att om en aktivitet avbryts eller inte kan slutföra en begäran om resurser påverkas endast den aktuella aktiviteten. Om en aktivitet till exempel håller ett lås och tar emot en HRESULT som indikerar fel när en minnesallokeringsbegäran görs, är det inte tillräckligt att bara avbryta uppgiften för att säkerställa stabiliteten i AppDomain, eftersom AppDomain kan innehålla andra aktiviteter som väntar på samma lås. Om du vill avbryta den aktuella aktiviteten kan de andra aktiviteterna sluta svara. I sådana fall behöver värden möjligheten att ta bort hela AppDomain i stället för att riskera potentiell instabilitet.

En icke-kritisk kodregion är å andra sidan en region där CLR kan garantera att en avbruten eller ett fel endast påverkar den uppgift som felet inträffar på.

CLR skiljer också mellan graciösa och icke-graciösa (oförskämda) aborter. I allmänhet gör en normal eller graciös abort allt för att köra undantagshanteringsrutiner och finalizers innan du avbryter en uppgift, medan en oförskämd abort inte ger några sådana garantier.

Krav

Plattformar: Se Systemkrav.

Huvudet: MSCorEE.h

Bibliotek: MSCorEE.dll

.NET Framework versioner: Tillgänglig sedan 2.0

Se även