EClrOperation Enumerálás
Azokat a műveleteket ismerteti, amelyekre a gazdagép szabályzatműveleteket alkalmazhat.
Syntax
typedef enum {
OPR_ThreadAbort,
OPR_ThreadRudeAbortInNonCriticalRegion,
OPR_ThreadRudeAbortInCriticalRegion,
OPR_AppDomainUnload,
OPR_AppDomainRudeUnload,
OPR_ProcessExit,
OPR_FinalizerRun
} EClrOperation;
Tagok
Tag | Description |
---|---|
OPR_AppDomainRudeUnload |
A gazdagép megadhatja azokat AppDomain a szabályzatműveleteket, amelyeket a rendszer nem kecses (durva) módon távolít el. |
OPR_AppDomainUnload |
A gazdagép megadhatja a kiürítéskor AppDomain végrehajtandó szabályzatműveleteket. |
OPR_FinalizerRun |
A gazdagép megadhatja a véglegesítők futtatásakor végrehajtandó szabályzatműveleteket. |
OPR_ProcessExit |
A gazdagép megadhatja a folyamatból való kilépéskor végrehajtandó szabályzatműveleteket. |
OPR_ThreadAbort |
A gazdagép megadhatja a szál megszakításakor végrehajtandó szabályzatműveleteket. |
OPR_ThreadRudeAbortInCriticalRegion |
A gazdagép megadhatja a szabályzatműveleteket, amelyeket akkor kell végrehajtani, ha egy durva szál megszakad egy kritikus kódrégióban. |
OPR_ThreadRudeAbortInNonCriticalRegion |
A gazdagép megadhat olyan szabályzatműveleteket, amelyeket akkor kell végrehajtani, ha egy durva szál megszakad egy nem kritikus kódterületen. |
Megjegyzések
A közös nyelvi futtatókörnyezeti (CLR) megbízhatósági infrastruktúra különbséget tesz a kód kritikus régióiban előforduló megszakítások és erőforrás-foglalási hibák, valamint a kód nem kritikus régióiban előforduló hibák között. Ez a különbségtétel lehetővé teszi, hogy a gazdagépek különböző szabályzatokat állítsanak be attól függően, hogy hol történik hiba a kódban.
A kód kritikus régiója olyan terület, ahol a CLR nem tudja garantálni, hogy egy tevékenység megszakítása vagy az erőforrásokra vonatkozó kérések sikertelen teljesítése csak az aktuális tevékenységre lesz hatással. Ha például egy feladat zárolást tart, és egy HRESULT-t kap, amely a memórialefoglalási kérés végrehajtásakor hibát jelez, nem elegendő egyszerűen megszakítani ezt a feladatot a AppDomainstabilitásának biztosítása érdekében, mert az AppDomain tartalmazhat más feladatokat is, amelyek ugyanarra a zárolásra várnak. Az aktuális tevékenység megszakítása miatt a többi tevékenység nem válaszol. Ilyen esetben a gazdagépnek az egész AppDomain kiürítésére van szüksége, nem pedig a potenciális instabilitás kockázatára.
A kód nem kritikus régiója viszont egy olyan régió, ahol a CLR garantálja, hogy egy megszakítás vagy hiba csak azt a feladatot érinti, amelyre a hiba vonatkozik.
A CLR különbséget tesz a kecses és a nem kecses (durva) megszakítások között. Általánosságban elmondható, hogy egy normál vagy kecses megszakítás minden erőfeszítést megtesz, hogy kivételkezelési rutinokat és véglegesítőket futtasson a feladat megszakítása előtt, míg a durva megszakítás nem tesz ilyen garanciákat.
Követelmények
Platformok: Lásd: Rendszerkövetelmények.
Fejléc: MSCorEE.h
Kódtár: MSCorEE.dll
.NET-keretrendszer verziók: 2.0 óta elérhető