EClrOperation 列挙型EClrOperation Enumeration

ホストがポリシーアクションを適用できる操作のセットについて説明します。Describes the set of operations for which a host can apply policy actions.


typedef enum {  
} EClrOperation;  


メンバーMember 説明Description
OPR_AppDomainRudeUnload ホストは、AppDomain が正常でない (ルー) 方法でアンロードされたときに実行されるポリシーアクションを指定できます。The host can specify policy actions to be taken when an AppDomain is unloaded in a non-graceful (rude) manner.
OPR_AppDomainUnload ホストは、AppDomain がアンロードされたときに実行するポリシーアクションを指定できます。The host can specify policy actions to be taken when an AppDomain is unloaded.
OPR_FinalizerRun ホストは、ファイナライザーの実行時に実行されるポリシーアクションを指定できます。The host can specify policy actions to be taken when finalizers run.
OPR_ProcessExit ホストは、プロセスが終了したときに実行するポリシーアクションを指定できます。The host can specify policy actions to be taken when the process exits.
OPR_ThreadAbort ホストは、スレッドが中止されたときに実行されるポリシーアクションを指定できます。The host can specify policy actions to be taken when a thread is aborted.
OPR_ThreadRudeAbortInCriticalRegion ホストは、コードの重要な領域でルースレッドの中止が発生したときに実行されるポリシーアクションを指定できます。The host can specify policy actions to be taken when a rude thread abort occurs in a critical region of code.
OPR_ThreadRudeAbortInNonCriticalRegion ホストは、非クリティカルなコード領域で、ルードスレッドの中止が発生したときに実行するポリシーアクションを指定できます。The host can specify policy actions to be take when a rude thread abort occurs in a non-critical region of code.


共通言語ランタイム (CLR) の信頼性インフラストラクチャでは、コードの重要な領域で発生する中止とリソース割り当ての失敗と、コードの重要ではない領域で発生するエラーを区別します。The common language runtime (CLR) reliability infrastructure distinguishes between aborts and resource allocation failures that occur in critical regions of code and those that occur in non-critical regions of code. この区別は、コード内でエラーが発生した場所に応じて、ホストがさまざまなポリシーを設定できるように設計されています。This distinction is designed to allow hosts to set different policies depending on where a failure occurs in the code.

コードの重要な領域は、タスクの中止、またはリソースの要求を完了できないことが CLR によって保証されない場合、現在のタスクにのみ影響します。A critical region of code is any space where the CLR cannot guarantee that aborting a task or failing to complete a request for resources will affect only the current task. たとえば、タスクがロックを保持していて、メモリ割り当て要求の発生時に失敗したことを示す HRESULT を受け取った場合、AppDomain に他のタスクが含まれている可能性があるため、そのタスクを中止して AppDomainの安定性を確保するだけでは不十分です。同じロックを待機しています。For example, if a task is holding a lock and receives an HRESULT that indicates failure upon making a memory allocation request, it is insufficient simply to abort that task to ensure the stability of the AppDomain, because the AppDomain might contain other tasks waiting for the same lock. 現在のタスクを破棄すると、その他のタスクが応答を停止する可能性があります。To abandon the current task might cause those other tasks to stop responding. このような場合、ホストは、潜在的に不安定になるリスクではなく、AppDomain 全体をアンロードする機能を必要とします。In such a case, the host needs the ability to unload the entire AppDomain rather than risk potential instability.

一方、クリティカルではないコード領域とは、CLR が、エラーが発生したタスクのみに影響を与えることを CLR が保証できる領域です。A non-critical region of code, on the other hand, is a region where the CLR can guarantee that an abort or a failure will affect only the task upon which the error occurs.

また、この CLR では、グレースフルとグレースフルの (ルード) 中止が区別されます。The CLR also distinguishes between graceful and non-graceful (rude) aborts. 一般に、通常または正常な中止では、タスクを中止する前に例外処理ルーチンとファイナライザーを実行するすべての作業を行います。ただし、ルードアボートではこのような保証は行われません。In general, a normal or graceful abort makes every effort to run exception-handling routines and finalizers before aborting a task, while a rude abort makes no such guarantees.


:システム要件」を参照してください。Platforms: See System Requirements.

ヘッダー: Mscoree.dllHeader: MSCorEE.h

ライブラリ: Mscoree.dllLibrary: MSCorEE.dll

.NET Framework のバージョン: 2.0 以降で使用可能Available since 2.0.NET Framework Versions: 2.0 以降で使用可能Available since 2.0

関連項目See also