次の方法で共有


ICLRPolicyManager::SetActionOnTimeout メソッド

指定された操作がタイムアウトしたときに共通言語ランタイム (CLR) により実行されるポリシー アクションを指定します。

構文

HRESULT SetActionOnTimeout (  
    [in] EClrOperation operation,  
    [in] EPolicyAction action  
);  

パラメーター

operation
[in] いずれかの EClrOperation 値。タイムアウト アクションを指定する操作を示します。 サポートされている値を次に示します。

  • OPR_AppDomainUnload

  • OPR_ProcessExit

  • OPR_ThreadRudeAbortInCriticalRegion

  • OPR_ThreadRudeAbortInNonCriticalRegion

action
[in] EPolicyAction 値の 1 つ。操作がタイムアウトしたときに実行されるポリシー アクションを示します。

戻り値

HRESULT 説明
S_OK SetActionOnTimeout が正常に返されました。
HOST_E_CLRNOTAVAILABLE CLR がプロセスに読み込まれていないか、CLR がマネージド コードを実行できないまたは呼び出しを正常に処理できない状態です。
HOST_E_TIMEOUT 呼び出しがタイムアウトになりました。
HOST_E_NOT_OWNER 呼び出し元がロックを所有していません。
HOST_E_ABANDONED ブロックされたスレッドまたはファイバーが待機しているときに、イベントが取り消されました。
E_FAIL 原因不明の致命的なエラーが発生しました。 メソッドにより E_FAIL が返された後、そのプロセス内で CLR が使用できなくなります。 後続のホスティング メソッドの呼び出しでは HOST_E_CLRNOTAVAILABLE が返されます。
E_INVALIDARG 指定された operation にはタイムアウトを設定できません。あるいは、operation に無効な値が指定されました。

解説

タイムアウト値は、CLR によって設定された既定のタイムアウトか、ICLRPolicyManager::SetTimeout メソッドへの呼び出しでホストによって指定された値のいずれかになります。

ポリシー アクション値の一部は、CLR 操作のタイムアウト動作として指定できます。 通常、SetActionOnTimeout は動作をエスカレートするためにのみ使用されます。 たとえば、ホストでは、スレッド中止をルード スレッド中止に変換するように指定できますが、逆の指定をすることはできません。 次の表は、有効な operation の値の有効な action 値を示しています。

operation の値 action の有効な値
OPR_ThreadRudeAbortInNonCriticalRegion

OPR_ThreadRudeAbortInCriticalRegion
- eRudeAbortThread
- eUnloadAppDomain
- eRudeUnloadAppDomain
- eExitProcess
- eFastExitProcess
- eRudeExitProcess
- eDisableRuntime
OPR_AppDomainUnload - eUnloadAppDomain
- eRudeUnloadAppDomain
- eExitProcess
- eFastExitProcess
- eRudeExitProcess
- eDisableRuntime
OPR_ProcessExit - eExitProcess
- eFastExitProcess
- eRudeExitProcess
- eDisableRuntime

必要条件

:システム要件」を参照してください。

ヘッダー: MSCorEE.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

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

関連項目