Opsomming EClrOperation
Beschrijft de set bewerkingen waarop een host beleidsacties kan toepassen.
Syntax
typedef enum {
OPR_ThreadAbort,
OPR_ThreadRudeAbortInNonCriticalRegion,
OPR_ThreadRudeAbortInCriticalRegion,
OPR_AppDomainUnload,
OPR_AppDomainRudeUnload,
OPR_ProcessExit,
OPR_FinalizerRun
} EClrOperation;
Leden
Lid | Beschrijving |
---|---|
OPR_AppDomainRudeUnload |
De host kan beleidsacties opgeven die moeten worden uitgevoerd wanneer een AppDomain op een niet-sierlijke (onbeleefde) manier wordt uitgeladen. |
OPR_AppDomainUnload |
De host kan beleidsacties opgeven die moeten worden uitgevoerd wanneer een AppDomain wordt uitgeladen. |
OPR_FinalizerRun |
De host kan beleidsacties opgeven die moeten worden uitgevoerd wanneer finalizers worden uitgevoerd. |
OPR_ProcessExit |
De host kan beleidsacties opgeven die moeten worden uitgevoerd wanneer het proces wordt afgesloten. |
OPR_ThreadAbort |
De host kan beleidsacties opgeven die moeten worden uitgevoerd wanneer een thread wordt afgebroken. |
OPR_ThreadRudeAbortInCriticalRegion |
De host kan beleidsacties opgeven die moeten worden uitgevoerd wanneer een onbeschofte thread wordt afgebroken in een kritieke coderegio. |
OPR_ThreadRudeAbortInNonCriticalRegion |
De host kan beleidsacties opgeven die moeten worden uitgevoerd wanneer een onbeschofte thread afbreekt in een niet-kritieke regio van code. |
Opmerkingen
De clr-betrouwbaarheidsinfrastructuur (Common Language Runtime) maakt onderscheid tussen afgebroken en resourcetoewijzingsfouten die optreden in kritieke coderegio's en fouten in niet-kritieke coderegio's. Dit onderscheid is ontworpen om hosts toe te staan verschillende beleidsregels in te stellen, afhankelijk van waar een fout optreedt in de code.
Een kritieke coderegio is een ruimte waar de CLR niet kan garanderen dat het afbreken van een taak of het niet voltooien van een aanvraag voor resources alleen van invloed is op de huidige taak. Als een taak bijvoorbeeld een vergrendeling vasthoudt en een HRESULT ontvangt dat aangeeft dat er een fout is opgetreden bij het indienen van een geheugentoewijzingsaanvraag, is het niet voldoende om die taak gewoon af te breken om de stabiliteit van de AppDomainte garanderen, omdat de AppDomain mogelijk andere taken bevat die wachten op dezelfde vergrendeling. Als u de huidige taak afgeeft, kunnen deze andere taken niet meer reageren. In een dergelijk geval moet de host de mogelijkheid hebben om het hele AppDomain te lossen in plaats van potentiƫle instabiliteit te riskant te maken.
Een niet-kritieke regio van code is daarentegen een regio waar de CLR kan garanderen dat een afbreken of een fout alleen van invloed is op de taak waarop de fout optreedt.
De CLR maakt ook onderscheid tussen sierlijke en niet-sierlijke (onbeschofte) aborts. Over het algemeen doet een normale of sierlijke aboratie er alles aan om routines voor het verwerken van uitzonderingen en finalizers uit te voeren voordat een taak wordt afgebroken, terwijl een onbeschoft afbreken dergelijke garanties niet biedt.
Vereisten
Platforms: Zie Systeemvereisten.
Header: MSCorEE.h
Bibliotheek: MSCorEE.dll
.NET Framework versies: beschikbaar sinds 2.0