EClrOperation – výčet
Popisuje sadu operací, pro které může hostitel použít akce zásad.
Syntax
typedef enum {
OPR_ThreadAbort,
OPR_ThreadRudeAbortInNonCriticalRegion,
OPR_ThreadRudeAbortInCriticalRegion,
OPR_AppDomainUnload,
OPR_AppDomainRudeUnload,
OPR_ProcessExit,
OPR_FinalizerRun
} EClrOperation;
Členové
Člen | Description |
---|---|
OPR_AppDomainRudeUnload |
Hostitel může určit akce zásad, které se mají provést při uvolnění objektu AppDomain neslušným (hrubým) způsobem. |
OPR_AppDomainUnload |
Hostitel může určit akce zásad, které se mají provést při uvolnění objektu AppDomain . |
OPR_FinalizerRun |
Hostitel může určit akce zásad, které se mají provést při spuštění finalizačních metod. |
OPR_ProcessExit |
Hostitel může určit akce zásad, které se mají provést při ukončení procesu. |
OPR_ThreadAbort |
Hostitel může určit akce zásad, které se mají provést při přerušení vlákna. |
OPR_ThreadRudeAbortInCriticalRegion |
Hostitel může určit akce zásad, které se mají provést, když v kritické oblasti kódu dojde k přerušení hrubého vlákna. |
OPR_ThreadRudeAbortInNonCriticalRegion |
Hostitel může určit akce zásad, které se mají provést, když dojde k přerušení hrubého vlákna v nekritické oblasti kódu. |
Poznámky
Infrastruktura spolehlivosti modulu CLR (Common Language Runtime) rozlišuje mezi přerušeními a selháními přidělení prostředků, ke kterým dochází v kritických oblastech kódu, a chybami, ke kterým dochází v nekritické oblasti kódu. Toto rozlišení umožňuje hostitelům nastavit různé zásady v závislosti na tom, kde v kódu dojde k selhání.
Kritickou oblastí kódu je jakékoli místo, kde CLR nemůže zaručit, že přerušení úlohy nebo nedokončování žádosti o zdroje ovlivní pouze aktuální úkol. Pokud například úkol drží zámek a obdrží hresult indikující selhání při vytvoření požadavku na přidělení paměti, nestačí jednoduše přerušit tento úkol, aby se zajistila stabilita objektu AppDomain, protože AppDomain může obsahovat další úlohy čekající na stejný zámek. Opuštění aktuální úlohy může způsobit, že tyto další úlohy přestanou reagovat. V takovém případě hostitel potřebuje možnost uvolnit celý AppDomain objekt, a ne riskovat potenciální nestabilitu.
Na druhou stranu nekritické oblasti kódu je oblast, ve které clr může zaručit, že přerušení nebo selhání ovlivní pouze úlohu, u které k chybě dochází.
ClR také rozlišuje mezi elegantními a neslušným (neslušným) přerušením. Obecně platí, že normální nebo řádné přerušení se snaží spustit rutiny zpracování výjimek a finalizační metody před přerušením úkolu, zatímco hrubé přerušení neposkytuje žádné takové záruky.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: MSCorEE.h
Knihovna: MSCorEE.dll
Verze rozhraní .NET Framework: K dispozici od verze 2.0