EClrOperation 列舉

描述主機可以套用原則動作的作業集。

語法

typedef enum {  
    OPR_ThreadAbort,  
    OPR_ThreadRudeAbortInNonCriticalRegion,  
    OPR_ThreadRudeAbortInCriticalRegion,  
    OPR_AppDomainUnload,  
    OPR_AppDomainRudeUnload,  
    OPR_ProcessExit,  
    OPR_FinalizerRun  
} EClrOperation;  

成員

member 描述
OPR_AppDomainRudeUnload 主機可以指定以非正常 (粗糙) 方式卸載 AppDomain 時要採取的原則動作。
OPR_AppDomainUnload 主機可以指定要在卸載 AppDomain 時採取的原則動作。
OPR_FinalizerRun 主機可以指定要在完成項執行時採取的原則動作。
OPR_ProcessExit 主機可以指定要在處理序結束時採取的原則動作。
OPR_ThreadAbort 主機可以指定要在執行緒中止時採取的原則動作。
OPR_ThreadRudeAbortInCriticalRegion 主機可以指定要在程式碼的關鍵區域中發生粗糙執行緒中止時採取的原則動作。
OPR_ThreadRudeAbortInNonCriticalRegion 主機可以指定要在程式碼的非關鍵區域中發生粗糙執行緒中止時採取的原則動作。

備註

通用語言執行平台 (CLR) 可靠性基礎結構可區分在程式碼的關鍵區域中發生的中止和資源配置失敗,以及發生在程式碼的非關鍵區域中中止和資源配置失敗。 此區別的設計訴求在於允許主機根據程式碼中發生失敗的位置來設定不同的原則。

程式碼的關鍵區域是任何空間,在其中 CLR 無法保證中止工作或無法完成資源要求只會影響目前的工作。 例如,如果工作保有鎖定並收到 HRESULT,表示提出記憶體配置要求時失敗,就不足以中止該工作來確保 AppDomain 的穩定性,因為 AppDomain 可能包含等候相同鎖定的其他工作。 若要放棄目前的工作,可能會導致其他這些工作停止回應。 在這種情況下,主機必須能夠卸載整個 AppDomain,而不是風險潛在不穩定性。

另一方面,在程式碼的非關鍵區域中,CLR 可保證中止或失敗只會影響發生錯誤的工作。

CLR 也會區分正常和非正常 (粗糙) 中止。 一般而言,正常或正常中止會讓每項付出在中止工作之前執行例外狀況處理常式和完成項,而粗糙中止則沒有此種保證。

規格需求

平台:請參閱系統需求

標題: MSCorEE.h

程式庫: MSCorEE.dll

.NET Framework版本:自 2.0 起提供

另請參閱