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