EClrOperation 列舉
描述主應用程式可以套用原則動作的作業集。
typedef enum {
OPR_ThreadAbort,
OPR_ThreadRudeAbortInNonCriticalRegion,
OPR_ThreadRudeAbortInCriticalRegion,
OPR_AppDomainUnload,
OPR_AppDomainRudeUnload,
OPR_ProcessExit,
OPR_FinalizerRun
} EClrOperation;
成員
成員 |
描述 |
---|---|
OPR_AppDomainRudeUnload |
主應用程式可以指定在不正常 (粗略) 卸載 AppDomain 時所要採取的原則動作。 |
OPR_AppDomainUnload |
主應用程式可以指定在卸載 AppDomain 時所要採取的原則動作。 |
OPR_FinalizerRun |
主應用程式可以指定當完成項執行時所要採取的原則動作。 |
OPR_ProcessExit |
主應用程式可以指定當處理序結束時所要採取的原則動作。 |
OPR_ThreadAbort |
主應用程式可以指定在執行緒中止時所要採取的原則動作。 |
OPR_ThreadRudeAbortInCriticalRegion |
主應用程式可以指定當程式碼的關鍵區域中發生粗略的執行緒中止時,所要採取的原則動作。 |
OPR_ThreadRudeAbortInNonCriticalRegion |
主應用程式可以指定當程式碼的非關鍵區域中發生粗略的執行緒中止時,所要採取的原則動作。 |
備註
Common Language Runtime (CLR) 的可靠基礎結構可區別發生在程式碼關鍵區域和非關鍵區域內的中止以及資源配置失敗。 此區別的用意,是要讓主應用程式根據失敗發生在程式碼中的位置來設定不同的原則。
「程式碼的關鍵區域」(Critical Region of Code) 是指 CLR 無法保證中止工作或無法完成資源的要求將只會影響目前工作的任何空間。 例如,如果某個工作持有鎖定,且在進行記憶體配置要求後接收到表示失敗的 HRESULT,則單單只是中止該工作來確保 AppDomain 的穩定性是不夠的,因為 AppDomain 可能會包含其他等候相同鎖定的工作。 放棄目前的工作可能會使這些其他工作無限期停止回應。 在這種情況下,主應用程式需要有能力卸載整個 AppDomain,而不是面臨著可能會造成不穩定的風險。
另一方面,「程式碼的非關鍵區域」(Non-critical Region of Code) 是指 CLR 可以保證中止或失敗將只會影響發生錯誤所在工作的一個區域。
CLR 也會區別正常和不正常 (粗略) 中止。 一般來說,正常的中止會盡全力執行例外處理常式和完成項後,再中止工作,而粗略中止則不會做出這樣的保證。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**MSCorEE.h
**程式庫:**MSCorEE.dll
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0